day1-Django 视图
1.基础的视图
from django.http import HttpResponse
import datetimedef current_datetime(request):now = datetime.datetime.now()html = "<html><body>It is now %s.</body></html>" % nowreturn HttpResponse(html)
首先,我们从 django.http 模块导入类 HttpResponse ,以及 Python 的
datetime
库。然后,我们定义一个名为
current_datetime
的函数。这是一个视图函数。每个视图函数都将 HttpRequest 对象作为第一个参数,通常名为request
。注意视图函数名称无关紧要;它不需要以特定的名称来让 Django 识别它。我们在这里命名
current_datetime
,因为这个名字可以清楚的表示它的用途。视图返回一个包含生成的响应的 HttpResponse 对象。每个视图函数都要返回 HttpResponse 对象。
2.根据HttpResponse的子类返回错误信息
from django.http import HttpResponse, HttpResponseNotFounddef my_view(request):# ...if foo:return HttpResponseNotFound('<h1>Page not found</h1>')else:return HttpResponse('<h1>Page was found</h1>')
这些子类封装了响应的状态码
3.自定义返回的状态码
from django.http import HttpResponsedef my_view(request):# ...# Return a "created" (201) response code.return HttpResponse(status=201)
4.自定义错误页面
从源码中可以知道 django默认有这四种错误码,所以需要重新指定其所映射的函数.
handler400 = defaults.bad_request handler403 = defaults.permission_denied handler404 = defaults.page_not_found handler500 = defaults.server_error
- 设置setting.py文件debug=False
- 定义错误页面的模板文件 404.html、400.html、403.html和500.html
- 在项目(非子应用)的url.py 文件中配置好 handler对应的视图函数
from django.conf.urls import handler404 from child.views import page_not_found #错误页面400 handler404 = page_not_found
- 定义错误页面处理视图
def page_not_found(request,exception):return render(request,'404.html')
同理其他错误处理