view与urls:
request:
request对象:
每个视图函数都必须有一个形参
接收django传递过来的用户请求的对象
request也就是在浏览器请求的时候给视图的数据
概述:
服务器接收到用户请求以后 会创建出request对象
视图第一个参数就是request对象
属性:
print(type(request)) request类型
print(request.path)#/ 请求路径
print(request.method) # 获取请求方式
print(request.is_ajax()) #判断是否是ajax
print(request.is_secure()) #False
print(request.get_host()) #返回本地ip地址 127.0.0.1:8000
print(request.GET.get('username')) #<QueryDict:{}> 获取一个参数 get传参可以存在相同的key
print(request.POST) # 专门post请求上传
print(request.FILES) #专门针对文件上传
print(request.COOKIES)
print(request.META['REMOTE_ADDR']) #获取访问者客户端ip地址
response:
1.HttpResponse: 通过HttpResponse获取相应
2.render(request,template_name) 模板的时候使用
3.JsonResponse() # json字符串 使用ajax时使用的多
HttpResponse响应
概述:
给浏览器进行响应
request请求对象 是由django框架所创建的 response响应对象 是由程序员创建的
(1)响应的方法
HttpRsponse()
导入:
from.django.shortcuts import render,HttpResponse
特点:
不用调用模板 直接进行内容的相应 常用于视图的测试使用
属性:
res = HttpResponse()
1.res.content 设置/获取内容
2.status_code 设置/获取状态码
方法:
1.write() 写内容
2.set_cookie() 设置cookie
3.delete_cookie 删除cookie
主子路由
路由定义形式:
path(router,视图函数名)
path(router,视图函数名,name='')
path(router,include())
(1)主路由:
项目同名文件下的urls.py是主路由
在主路由下要包含子路由:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('app/',include('app.urls')),
path('goods/',include('goods.urls')) ----> 通过include包括子路由
]
(2)子路由:
在本app文件里创建一个urls.py文件
作为子路由文件格式符合以下格式:
from django.urls import path
from goods.views import all_goods
urlpatterns = [
path('all',all_goods)
]
使用路径传参:
通过value = request.GET.get('name') 获取name后面的值
request.POST.get('name')