Django(四): 视图函数

基本MVC流程:
1>. urls.py 中路由选择, 分配视图函数 (C)

2>. views.py 中具体实现逻辑 (V)
1>>. 返回render渲染的模板
return render(req, 'test.html', {'模板变量':'python变量'})
2>>. 直接返回HTTPResponse
return HTTPResponse('data')
3>>. GET数据
req.method # 前端提交方式
req.GET.get('key')
4>>. POST数据
req.POST.get('key')
# settings.py中的先关闭
# 'django.middleware.csrf.CsrfViewMiddleware', # django post的表单做安全检测,先暂时关闭
5>>. 一个Request一定要对应一个Response, 请求一定要回应
3>. templates 操作html模板 (T)
1>>. html中的静态文件在static
2>>. 静态文件的路径在settings.py中配置
##整个templates的渲染过程在wsgi服务器(后端)中进行,而js,css等静态文件的渲染在前端中进行

4>. models.py 中操作数据库 (M)

视图函数: views.py
1>. HTTPRequest HTTPResponse 对象: django.http
* 一个Request一定要回应一个Response
1>>. HTTPRequest属性方法:
属性: .path # 全局路径, 不包括域名
.method # 前端提交页面的方法, 全部大写 GET POST
.GET # 包含所有HTTP GET参数的类字典对象 keysvalues都是字符串
.POST # 包含所有HTTP POST参数的类字典对象 keysvalues都是字符串
.COOKIES # 包含所有cookies的包含所有cookies的标准Python字典对象;keysvalues都是字符串
.FILES # 包含所有上传文件的类字典对象, 每一个value同时也是一个标准的python字典对象
value = {
filename: 上传文件名,用字符串表示
content_type: 上传文件的Content Type, 字符串
content: 上传文件的原始内容
}
.user
.session

方法: .get_full_path() # 全路径+url提交值

2>>. HTTPResponse:
** 每个view请求处理方法必须返回一个HttpResponse对象
return HTTPResponse('str')
1>>. 页面渲染:
return render('模板.html', context_dir)
# return render_to_response('模板.html', context_dir, context_instance=RequestContext(req))
2>>. 页面跳转:
return redirect('url') # 如果要传参通过url/?message=%s 传参给另一个视图函数
# /app01/url django会退回到根地址'127.0.0.1:8080'

ret = redirect('url') # 也可以通过cookie
ret.set_cookie(键,值)
renderredirect的区别: render 没有页面跳转, 虽然显示了别的页面,但还是当前url
 

猜你喜欢

转载自www.cnblogs.com/lancelotxly/p/10871562.html