Django-MVT之V层总结

一、视图

在Django中,通过浏览器去请求一个页面时,使用视图函数来处理这个请求的,视图函数处理之后,要给浏览器返回页面内容。

1、视图函数的使用

  1. 定义视图函数
    视图函数定义在views.py中。
    例:
    def index(request):
    #进行处理。。。
    return HttpResponse(‘hello python’)
    视图函数必须有一个参数request,进行处理之后,需要返回一个HttpResponse的类对象,hello python就是返回给浏览器显示的内容。
    2)进行url配置
    url配置的目的是让建立url和视图函数的对应关系。url配置项定义在urlpatterns的列表中,每一个配置项都调用url函数。
    url函数有两个参数,第一个参数是一个正则表达式,第二个是对应的处理动作。
    配置url时,有两种语法格式:
    a) url(正则表达式,视图函数名)
    b) url(正则表达式,include(应用中的urls文件))
    工作中在配置url时,首先在项目的urls.py文件中添加配置项时,并不写具体的url和视图函数之间的对应关系,而是包含具体应用的urls.py文件,在应用的urls.py文件中写url和视图函数的对应关系。

2、 url匹配的过程
在项目的urls.py文件中包含具体应用的urls.py文件,应用的urls.py文件中写url和视图函数的对应关系。
当用户输入如http://127.0.0.1:8000/aindex时,去除域名和最前面的/,剩下aindex,拿aindex字符串到项目的urls文件中进行匹配,配置成功之后,去除匹配的a字符,拿剩下的index字符串继续到应用的urls文件中进行正则匹配,匹配成功之后执行视图函数index,index视图函数返回内容hello python给浏览器来显示。

3、视图的功能

	接收请求,进行处理,与M和T进行交互,返回应答。
	返回html内容 HttpResponse,也可能重定向 redirect,还可以返回json数据。

4、视图函数使用

1)定义视图函数
request参数必须有。是一个HttpRequest类型的对象。参数名可以变化,
但不要更改。
2)配置url
建立url和视图函数之间的对应关系。
2.2 url配置的过程
1)在项目的urls文件中包含具体应用的urls文件,在具体应用的urls文件中包含具体url和视图的对应关系。
2)url配置项是定义在一个名叫urlpatterns的列表中,其中的每一个元素就是一个配置项,每一个配置项都调用url函数。
3.url匹配的过程
url:http://127.0.0.1:8000/aindex?a=1

  1. 去除域名和后面的参数,剩下/aindex,再把前面的/去掉,剩下aindex
  2. 拿aindex先到项目的url.py文件中进行从上到下的匹配,匹配成功之后执行后面对应的处理动作,就是把匹配成功的部分a字符去除,然后拿剩下的部分index到应用的urls.py文件中再进行从上到下的匹配。
  3. 如果匹配成功则调用相应的视图产生内容返回给客户端。如果匹配失败则产生404错误。

5、错误视图

404:找不到页面,关闭调试模式之后,默认会显示一个标准的错误页面,如果要显示自定义的页面,则需要的templates目录下面自定义一个404.html文件。
a)url没有配置
b)url配置错误
500: 服务器端的错误。
a)视图出错
网站开发完成需要关闭调试模式,在settings.py文件中:
DEBUG=False
ALLOWED_HOST=[ ‘*’]

6.捕获url参数

进行url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数。
1)位置参数
位置参数,参数名可以随意指定
2)关键字参数:在位置参数的基础上给正则表达式组命名即可。
?P<组名>
关键字参数,视图中参数名必须和正则表达式组名一致.

7、类视图的使用
例如:

class IndexView(View):

		def get(self,request):
			pass
		def post(self,request):
			pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值