在Django中的响应都是HttpResponse 或者是一个 错误响应(404,403)
1.响应(render,HttpResponse....)
render,HttpResponse,redirect等都是属于HttpResponse子类,只是不同的功能而已
在使用render渲染的时候在app的目录下需要创建templates的目录文件,加载的templates的目录文件其实与settings的TEMPLATES变量有关
TEMPLATES['BACKEND']的DjangoTemplates在每个INSTALLED_APPS中查找“templates”子目录
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
当渲染一个页面的时候,会将上述‘options’的上下文处理一并加载到模板template中,所以才会有request这个上下文
简写:render() 渲染模板使用的方法 更多Django的简写函数
抛出一个404错误 :
from django.http import Http404
.....
raise Http404('error message hit')
....
简写:get_object_or_404(): 当获取的对象资源不存在就抛出404错误,否则就获取值
拒绝那些在模板(template)中硬编码的URL :
{% url 'the_url_name_parameter' [arg1 arg2 ...] %}
the_url_name_parameter => 就是你要跳转的链接的name参数的值
[arg1 arg2 ...] 如果该url有参数的话就传递进去 ‘’空格 ‘’隔开
如果多个app的name参数相同则怎么办呢?传递 携带app命名的name值来转换值
{% url 'app_name:the_url_name_parameter' [arg1 arg2 ...] %}
这样的话就会反转成app_name下的对应的urls文件中的路径了