Django允许接收的请求方法
http_method_names = [‘get’, ‘post’, ‘put’, ‘patch’, ‘delete’, ‘head’, ‘options’, ‘trace’]
函数视图
- 函数视图它是一个标准的Python函数
- 函数视图中, 第一个参数必须定义: 第一个参数为请求对象, 用于接收用户发送的请求报文.
- 在函数视图中, 必须返回响应对象: 用于构成响应报文, 并响应给用户
- 请求对象: HTTPRequest() 对应的对象
- 响应对象: HTTPResponse() 对应的对象这里如果有请求路径相同, 但是请求方式不同, 就需要在函数视图内加一个判断
1
2
3
4
5
6
7
8
9
10
11from django import http
# 创建一个函数视图
def text_view(request):
"""
函数视图
:param request:包含请求报文信息,请求对象
:return: 响应对象,用于构造响应报文,并响应给用户
"""
# 响应数据调用http
return http.HTTPResponse("数据data")1
2
3
4
5
6
7
8
9
10
11
12
13
14def text_view(request):
"""
函数视图
:param request:包含请求报文信息,请求对象
:return: 响应对象,用于构造响应报文,并响应给用户
"""
# 先判断请求方法是什么如"GET","POST"
if request.method == "GET":
# 处理GET请求
return http.HTTPResponse("数据data")
elif request.method == "POST":
# 处理POST请求
return http.HTTPResponse("数据data")
类视图
类视图是一个Python类
定义类视图时需要继承Django中的提供的父类视图 View
在类视图中
- 需要定义跟请求方法同名的函数来对应不同的请求方式
- 在请求方法同名的函数中,还必须定义一个接收请求的参数(跟函数视图一样)
- 在请求方法同名的函数中, 也必须返回一个相应对象
1 | from django.views import View |
路由
定义路由的方法:path()、re_path()、url()
Django==1.x版本:url()
Django==2.x版本:path()、re_path()
说明:
为了在版本迭代中,保留旧版本的路由系统,url()在新版中依然可用。
并新增了一个url()的替代方案re_path(),所以url()几乎跟re_path()一样。
路由方法对比
path()
1 |
|
re_path()、url()
1 |
|
总路由
在Django中一个子应用对应一个总路由
总路由中,使用include()
将子应用
里面的所有路由都包含在工程总路由中
1 | from django.contrib import admin |
函数视图的路由
1 | from django.urls import path |
类视图定义路由
1 | from django.urls import path |