理论
WEB 框架的本质
- SOCKET 消息的收发
- Django开发阶段 使用 wsgiref 模块处理 SOCKET 消息
- Django部署到线上 使用 uwsgi / gunicorn 模块处理 SOCKET 消息
- 根据请求的路由不同, 指定不同的方法处理
- 定义操作具体内容
- 路由不同, 返回不同页面
- 路由相同, 传参或者请求方法不同, 返回相同页面, 不同数据
- 处理数据并返回结果(非 DB 操作)
- 操作数据库进行增删改查
框架模型
- MTV(django)
- Model (数据层)
- Template (展示层)
- Views (业务层)
- 实际上 MTV 也是 MVC 的一种
- Template 是传统意义上的 View
- View 是传统意义上的 Controller
- 图示
Django
安装及卸载
pip3 install django==3.0.3
pip3 list
pip3 install django==3.0.3 -i https://xx.xx.xx
pip3 uninstall django
常见命令
"""
新建项目
django-admin --> 命令
startproject --> 关键字
projectName --> 项目名
"""
django-admin startproject projectName
"""
新建app
start --> 关键字
app02 --> 新app名字
"""
python manage.py startapp app02
INSTALLED_APPS = [
...,
'app02',
'app02.apps.App02Config',
]
"""
启动项目(需要在项目目录下)
python --> 安装 django 的 python 环境
manage.py --> django 自带的脚本
runserver --> 启动关键字
ip:port --> 监听的 ip 和端口
"""
python manage.py runserver
python manage.py runserver 127.0.0.1:8090
python manage.py runserver 8099
"""
创建超级管理员账户
createsuperuser --> 关键字
"""
python manage.py createsuperuser
路由系统(urls.py)
- 路由是一个有顺序的列表, 自上而下去匹配
- 支持子路由模式, 便于多人管理
- 路由的路径支持正则表达式匹配(后期版本需要导入 re_path 模块)
视图系统(views.py)
必会三件套
from django.shortcuts import HttpResponse, render, redirect
return HttpResponse("ok")
return render(request, 'xx.html')
return render(request, 'xx.html', {"data": data})
return render(request, 'xx.html', {"data": data, "ID": id})
return redirect("/index/")
request 相关的知识点
request.method
request.GET.get("key", "默认值")
request.POST.get("key", "默认值")
模板系统(templates/)
render (request, 'xx.html', {"data": data, })
{{ varname }}
{{ dict.key }}
{% for i in list %}
<!-- 循环的序号 -->
{{ forloop.counter }}
{{ i }}
{% endfor %}
{% if condition %}
...
{% else %}
...
{% endif %}