Django的视图系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django的视图系统相关的知识,希望对你有一定的参考价值。
视图(views)概述
在前几篇文章中介绍了,client端通过http请求——去url的路由找到相应的视图函数——触发视图函数——再去modes取数据——取到数据后——再通过创建模——views函数把相响应对象——返回给client最终显示的内容
视图文件(views.py)在app目录下才有
看看新建项目默认的views.py文件的内容
from django.shortcuts import render # Create your views here.
通过相应的url请求来写不同请求的视图函数
视图函数的编写
from django.shortcuts import render # Create your views here. def index(request): return render(request,\'index.html\')
视图要结和url路由,models,模板文件一起来用,这里只简单介绍
视图函数的参数
第一个参数
视图函数的参数必须是url的请求对象一般写为request
后面及其他的参数
是url路由的分组信息,一个参数表示一个分组,两个参数表示两个分组
无名分组
URL urls.py 文件的内容 (无名分组) from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r\'^admin/\', admin.site.urls), url(r\'^index/(\\d+)/(\\d+)/$\',views.index), ]
多了 (\\d+), 正则表达式中 \\d 代表一个数字,+ 代表一个或多个前面的字符,写在一起 \\d+ 就是一个或多个数字,用括号括起来的意思是保存为一个子组(更多知识请参见 Python 正则表达式),每一个分组将作为一个参数,被 views.py 中的对应视图函数接收。
用内置的Httpresponce做相应测试
from django.shortcuts import render,HttpResponse # Create your views here. def index(request,x,y): z = x+y return HttpResponse(str(z))
启动django
django manage.py runserver 8080
client访问
提示:request接收的对象都是字符串
有名分组
每一个分组的分组名将作为一个参数,被 views.py 中的对应视图函数参数接收。
这里就不写了
request对象
常用属性
path: 请求页面的全路径,不包括域名 method: 请求中使用的HTTP方法的字符串表示。全大写表示。 GET: 包含所有HTTP GET参数的类字典对象 POST: 包含所有HTTP POST参数的类字典对象
response对象
对于HttpRequest对象来说,是由django自动创建的,但是,HttpResponse对象就必须我们自己创建。
每个view请求处理方法必须返回一个HttpResponse对象
HttpResponse类在django.http.HttpResponse
在HttpResponse对象上扩展的常用方法:
render() #页面渲染,推荐 (很少用HttpResponse) redirect("路径") 例如登录跳转 locals(): 可以直接将函数中所有的变量传给模板
具体详细使用要结合url和models和模板文件。。。。。。
以上是关于Django的视图系统的主要内容,如果未能解决你的问题,请参考以下文章