资讯专栏INFORMATION COLUMN

Django2.2图文教程

roundstones / 2744人阅读

摘要:事实上,社区成员给了他一个荣誉称号终生仁慈独裁者。说明图片来源百度。安装终端下或是在里面,命令相同。同步数据库在终端中执行此命令执行完成后,会在下生产记录变动的记录。此时数据库并未变动,然后执行这样的变动,立即同步到数据库中。

原文链接

1.准备工作

开发环境:
python: 3.7.3 下载地址:https://www.python.org/downlo...
pip: pip3
Django: 2.2 下载地址: https://www.djangoproject.com...
PyCharm: 2017.2 下载地址:https://www.jetbrains.com/pyc...

2.基础知识

1.Python: Python发源于八十年代后期。开发者是Centrum Wiskunde & Informatica的Guido van Rossum,这是位于荷兰阿姆斯特丹科学园区的一个数学和计算机科学研究中心。之后Van Rossum一直是Python开发很有影响的人物。事实上,社区成员给了他一个荣誉称号:终生仁慈独裁者(BDFL)。

2.web框架介绍
web框架的概念就像建房子,地基、支撑柱、大梁的骨架还有其他沙石、地板等等材料已经有了,
剩下的就是靠你自己组装起来。犹如积木一样。

说明:图片来源百度。

Django: Python代表性web框架,
遵循MMVC架构模式的开源框架。
它的名字来自Django Reinhardt,一个法国作曲家和吉他演奏家,很多人认为他是历史上最伟大的吉他演奏家。位于堪萨斯洲的Lawrence城的Lawrence Journal-World报社有两位程序员,Adrian Holovaty和Simon Willison,他们在2003的时候开发出了Django,用于给报纸开发web程序。

其他框架:tornado、flask、webpy

3.实例

Python的和Pycharm的安装忽略,安装比较简单。

1.安装

Mac终端下:

$ pip3 install django # 或 pip3 install django==2.2

Windows是在cmd里面,命令相同。

2.创建项目

打开Pycharm,欢迎页create project,然后

然后点击create就可以了。

PS:创建项目也可以使用命令这里不做介绍.

django-admin createproject DjangoQuick
django-admin startapp quick
3.项目结构

4.启动项目

Pycharm菜单栏

直接点击运行。或者左下角Terminal输入python3 manage.py runserver

将会在浏览器看到

这样表示项目已经启动成功,但是我们没有编写任何代码,所以出现了默认的错误提示。

5.添加视图

打开quick目录下的views.py,输入一下内容

from django.shortcuts import render
from django.http import HttpResponse # 新添加
# Create your views here.

# 新添加
def index(request):
    return HttpResponse("success")

6.添加url

打开DjangoQuick下的urls.py,修改如下:

from django.contrib import admin
from django.urls import path

from quick.views import index # 导入包

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", index) # 添加新的映射关系
]

如果使用Pycharm的按钮启动项目,需要点击stop,重新运行,如果在terminal中运行项目,会自动重启。
然后刷新浏览器。

然后就会看到我们在views.py的index方法中的输出。

7.返回Html(模版)

在quick目录新建templates目录

然后右键-new-html file, 新建一个index.html文件

index.html




    
    Title


这是一个html from:https://litets.com

修改views.py文件

from django.shortcuts import render


def index(request):
    return render(request, "index.html")

重启服务器,刷新浏览器将会看到

这是一个html from:https://litets.com
8.静态文件

上面我们已经成功输出了一段html代码,并且成功展示。大家都知html的美化需要依靠css,
css写法有两种:内联式和外联式。内联就不用多说,直接写在html同文件里面就可以了,现在我们使用外联文件改怎么办呢?

在quick目录下新建static/css/style.css文件。

.desc {
    color: red;
}


然后修改index.html


{% load static %}


    
    Title

    



    
这是一个html from:https://litets.com

刷新浏览器,将会看到字变成红色了。

9.接收用户数据,处理后返回

修改index.html文件

这是一个html from:https://litets.com
{% csrf_token %} 用户名:
密码:
{% if users %} {% for user in users %} {% endfor %}
序号 用户名 密码
{{ forloop.counter }} {{ user.username }} {{ user.password }}
{% endif %}

views.py修改

from django.shortcuts import render


def index(request):
    # 判断是否是post请求
    if request.method == "POST":
        # 获取到请求参数, username的写法,如果username不存在不会抛异常
        # password 会抛异常
        username = request.POST.get("username")
        password = request.POST["password"]

        # 业务 需求:
        users = []
        for x in range(0,3):
            users.append(
                {"username": "%s-%d" % (username, x), "password": "%s-%d" % (password, x)}
            )

        # 返回给用户  模版中使用到的users就是这里传递进去的
        return render(request, template_name="index.html", context={
            "users": users
        })
    return render(request, "index.html")

这样我们就实现了一个基本的网站了,但是有一个问题,用户传递过来的数据只是单次有效,无法持久化。
通常一个网站应用到需要持久化数据,比如文件、数据库等。

10.数据库持久化数据

我们打开DjangoQuick目录下的setting.py找到DATEBASES
默认项目使用sqlite3最为数据库。还支持 MySQL, PostgreSQL等

可用的引擎有:

"django.db.backends.sqlite3"
"django.db.backends.postgresql"
"django.db.backends.mysql"
"django.db.backends.oracle"

Mysql的设置:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "test", # 数据库名称,
        "HOST": "localhost", # 主机地址
        "USER": "user", # 数据库用户
        "PASSWORD": "pwd", # 密码
        "PORT": 3306 # mysql的端口默认3306
    }
}

这里我们使用默认的sqlite3。

打开quick下的models.py

from django.db import models

class User(models.Model):
    
    username = models.CharField(max_length=25)
    password = models.CharField(max_length=18)

我们增加了两个字段username和password,Django默认支持orm。
同步数据库,在终端中执行

$ python3 manage.py makemigrations


此命令执行完成后,会在migrations下生产记录models变动的记录。

此时数据库并未变动,然后执行

$ python3 manage.py migrate

这样models的变动,立即同步到数据库中。

修改views.py

from django.shortcuts import render

from .models import User

def index(request):
    # 判断是否是post请求
    if request.method == "POST":
        # 获取到请求参数, username的写法,如果username不存在不会抛异常
        # password 会抛异常
        username = request.POST.get("username")
        password = request.POST["password"]
        
        u = User(username=username, password=password)
        u.save()

    # 业务 需求:查询出所有数据
    users = User.objects.all()
    
    # 返回给用户
    return render(request, template_name="index.html", context={
        "users": users
    })

这样添加用户后就会持久报错了,即使关闭浏览器,重新访问数据也是存在的。

我们查看db.sqlite3文件查看里面的数据

原文链接

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43613.html

相关文章

  • Godaddy域名续费贵!Godaddy域名转移迁出到Namesilo域名服务商图文教程

    摘要:慢慢要把域名域名转走了。阿里云证书有免费申请的途径吗阿里云网站的导航栏产品安域名解析教程域名解析的图文教程域名解析教程域名解析的图文教程是国外域名注册商,是一家认可的域名注册和网站托管公司,近年来域名godaddy域名续费贵怎么办?godaddy真是坑爹,安全性不高,价格也越来越贵。以前的COM域名优惠码全部失效,好不容易找到一个优惠码,也比原来的要贵,比国内的还是贵了,真是坑爹。慢慢要把g...

    番茄西红柿 评论0 收藏2637
  • 阿里云服务器购买流程详细2019更新(图文教程

    摘要:四服务器使用教程购买完成后如何使用可以参考官方文档阿里云服务器使用教程汇总云服务器使用也十分简单,以搭建网站为例,无非是配置环境自定义安全组等操作,参考官方文档即可,从等都有,最后感谢大家对云吞铺子的关注。阿里云服务器购买页面云吞铺子认为过于复杂,尤其是对于第一次购买云服务器的新手来讲,2019年了,思来想去云吞铺子决定写一篇服务器购买流程的图文教程: 阿里云服务器购买流程 如何购买ECS云...

    lingdududu 评论0 收藏0
  • 超详细Dkhadoop虚拟机安装图文教程

    摘要:超详细虚拟机安装图文教程前两天看到有人留言问在什么情况下需要部署,我给的回答也很简单,就是在需要处理海量数据的时候才需要考虑部署。图图为虚拟机命名,如下图,命名按照自己喜欢即可,点击下一步进行处理器配置。 超详细Dkhadoop虚拟机安装图文教程前两天看到有人留言问在什么情况下需要部署hadoop,我给的回答也很简单,就是在需要处理海量数据的时候才需要考虑部署hadoop。关于这个问题...

    ChanceWong 评论0 收藏0
  • 宝塔Linux面板免费Nginx防火墙安装使用详细图文教程

    摘要:所以,本文中分享关于宝塔面板免费防火墙安装使用的图文教程。在你宝塔面板软件商店第三方应用免费防火墙,点击立即购买不用花钱,再点击安装,确定安装。注意免费防火墙,和现有的的防火墙只能安装一个,支持系统乌班图。宝塔Linux面板免费nginx防火墙怎么样?宝塔面板nginx免费防火墙是宝塔服务器面板为用户提供的免费使用的网站防火墙,仅限于Nginx web服务器使用。   众所周知,国内...

    GHOST_349178 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<