上一篇注册路由,显示自定义页面
获取地址栏参数
上一篇说通过定义不同的请求方法,来实现不同的请求方式
浏览器发送请求带参数 : http://192.168.81.57:8000/users/?age=18&name=“王马”
class register_view(View):
def get(self, request):
age = request.GET.get('age')
name = request.GET.get('name')
# 如果是这样的参数: ?name="王马1"&name="王马2"&age=1
# 可以用getlist('name')获取 ["王马1","王马2"]
获取表单数据
如果用post方式发送请求,携带表单数据,就用POST方式获取
# 用post方法获取表单数据
class register_view(View):
def post(self, request):
name = request.POST.get('name')
age = request.POST.get('age')
获取json数据
json数据在请求体(body)里面,直接拿body就可以获取到
class JsonData(View):
def post(self, request):
json_body = request.body
json_dict = json.loads(json_body) # 转换长json数据
name = json_dict.get('name')
age = json_dict.get('age')
gender = json_dict.get('gender')
提取路径数据
路由使用path
比如 获取http://192.168.80.160:8000/urldata/100 里的 100
视图如下:
注册路由时使用转换器 int
自定义转换器
- 在工程目录下 创建converters.py
- 在文件里写自定义的转换器
- 在工程的urls.py里把转换器注册
使用方法和int一样
因为这个path还要自定义,所以稍微麻烦,可以用re_path () 里面写正则,就可以快速完成需求
不用自定义了也不用创建文件了,一行代码解决 ,在视图里面使用时和path没有区别
获取请求头信息和其他信息
不常用的用META.get 获取
request.META.get(‘CONTENT_TYPE’)
常用的直接.
request.COOKIES
request.FILES
request.path
request.method
request.user
JsonResponse
返回json数据
重定向 redirect
下一篇中间件,配置数据库