django
2023-07-02 17:30:21 5 举报
AI智能生成
登录查看完整内容
django基本使用
作者其他创作
大纲/内容
https://docs.djangoproject.com/zh-hans/4.2/intro/tutorial01/
https://www.cnblogs.com/clschao/articles/10391859.html
文档
请求方法|空格|URL|空格|协议版本|回车符换行符
请求行
头部字段名:值|回车符换行符
请求头中的最后一个键值对后面追加2遍回车换行符
请求头
get请求没有请求数据
post请求,请求数据在请求头后面
请求数据
1.请求格式
协议版本|空格|状态码|空格|状态码描述|回车符换行符
状态行
响应头中的最后一个键值对后面追加2遍回车换行符
响应头
响应正文
2.响应格式
https://www.processon.com/mindmap/6498c3847536f6009893b420
层级URL标记符号为[//],固定不变
通常为域名,有时为IP 地址
服务器:
端口:
以\"/\"区分路径中的每一个目录名称
/mindmap/6498c3847536f6009893b420
路径:
GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题
https://www.cnblogs.com/clschao/articles/9230431.html?name=chao&age=18
查询:
3.URL
GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456
get
POST方法是把提交的数据放在HTTP包的请求数据部分中
post
GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
get和post区别
HEAD
PUT
DELETE
TRACE
CONNECT
PATCH
其他方法
4.请求方法
请求已经被服务器接收,继续处理
1xx消息
请求已成功被服务器接收
2xx成功
需要后续操作才能完成这一请求
3xx重定向
请求含有语法错误,或者无法被执行
4xx请求错误
服务器在处理某个正确请求时发生错误
5xx服务器错误
5.响应状态码
1.基于 请求-响应的模式
2.无状态保存
每次服务端响应完请求,会立即完成4次挥手断开链接
3.无连接
6.http协议特点
HTTP协议
https://www.djangoproject.com/download/
1.官网地址
pip3 install django==4.2
2.pip安装
下载安装
M:models数据库相关
V:views 视图逻辑相关
C:contgroller控制器, url分发,不同路径找不同的视图函数
MVC
M:models 数据库相关
T:templages 模板,html文件
V:views视图逻辑 + url控制器(MVC模型中的controller)
MTV
后面补充
MVVM
mvc、mtv、mvvm模型
django-amdin startproject 项目名称
1.创建项目
python manage.py runserver 127.0.0.1:8080
若不指定端口,默认为8000
2.运行项目
python manage.py startapp 应用名称
创建应用后需要在 settings.py文件的 INSTALL_APPS下添加app配置
INSTALL_APPS = ['应用名称.apps.App01Config']
3.创建应用
Django项目的工具,通过它可以调用django shel 和 数据库、关闭和启动项目与项目交互等等
manage.py
项目配置文件,包括数据库信息,调试标志及以及其他一些工作的变量
settings.py
url调度器,负责把URL映射到应用程序
urls.py
wsgi.py
4.项目目录
基础配置
APPEND_SLASH = True
URL路径补全\"/\"
MIDDLEWARE
注销:django.middleware.csrf.CsrfViewMiddleware'
关闭CSRF字符串验证
INSTALLED_APPS = [ # 以下两种写法都可以 'font color=\"#e74f4c\
app应用配置
host路径
TEMPLATES = ['DIRS': [BASE_DIR / 'templates']]
template模版路径
Settings配置
项目文件夹下的urls.py文件写法
应用下的urls.py文件写法
语法: <a href=\"/url路径/\">标签名</a>
<a href=\"/app01/\">app01</a>
a标签href中的url写法
urls配置(路由分发)
request -- HttpRequest对象
获取GET请求提交的数据
http://127.0.0.1:8000/?username=zew&password=123
<QueryDict: font color=\"#e74f4c\
request.GET
获取POST请求提交的数据
request.POST
request.META['HTTP_USER_AGENT']
获取请求头信息时,key前面加上“HTTP_”
request.META
请求路径中的url
request.path
reqeust.path_info
加上get请求参数
request.get_full_path()
请求路径
请求相关
回复html页面
return font color=\"#e74f4c\
render
回复字符串时使用
return HttpResponse('404 Not Fond')
HttpResponse
重定向url路径
return redirect('/url路径/')
示例
redirect(重定向)
旧地址资源还在,只是临时重定向到某个地址
302 临时重定向
旧地址的资源被永久地移除
301 永久重定向
旧地址的 ResponseHeaders 中的 Location 可查看重定向的URL地址
重定向状态码
响应相关
请求和响应常用属性和方法
视图中写视图函数
视图函数可以用装饰器装饰
FBV(function based views)
from django.views import View
父类 View 提供的一个静态方法 as_view() ,as_view 方法是基于类的外部接口, 他返回一个视图函数,调用后请求会传递给 dispatch 方法,dispatch 方法再根据不同请求来处理不同的方法
1. 继承父类 View
# django.Views.View中的dispatch方法
urls.py 调用继承自父类的as_view()静态方法;视图类中重写父类的dispatch方法,dispatch方法自动根据不同的请求类型来处理不同的方法
2. views.py重写父类View中的dispatch方法
from django.utils.decorators import method_decorator
font color=\"#e74f4c\
语法:
给视图类中的某个方法加装饰器
@method_decorator(wrapper)
方式一:
给视图类中的dispatch方法加装饰器(相当于给类中的所有方法加了装饰器)
方式二:
给视图类加装饰器
方式三:
3.CBV加装饰器函数
CBV(class based views)
装饰器函数:
视图函数的编写模式
django
0 条评论
回复 删除
下一页