Django URL和View的关系说明
URL和View的关系
1、每次用户发来一个HttpRequest请求,Django会用URL_pattern与请求进行匹配,匹配到第一个URL_pattern就会把请求转向对应的view
2、view用来响应request,并返回response,response里可以包含网页文件呀,图片等等。所以项目中绝大部分代码均在此编写。
view可以引入通用模板来减少代码量,具体查看文档
Usegenericviews
3、view引入HTML文件的方法:
在一个app下建立一个templates文件夹,将html文件放进去该文件夹
这里其实不一定要把HTML文件放在这个templates里,可以随意定义
不过,需要在setting.py里,找到templates,
修改DIRS:[os.path.join(BASE_DIR,'你定义的html存放的文件夹')]
在app下view.py文件,在里面写好view函数
def函数名(request):
returnrender(request,'index.html')
render(渲染)需要三个变量,第一个变量是request请求,第二个是模版所在目录,第三个是一个字典(可选),字典用于对应模板里设计的变量,可以用locals()将函数里设计的变量自动转换为字典
4、在对于app下创建一个urls.py,写入如下内容
fromdjango.urlsimportpath from.importviews urlpatterns=[ path('',views.index,name='index'), ]
5、在项目文件夹里找到urls.py加入如下内容
fromdjango.urlsimportinclude,path urlpatterns=[ path('polls/',include('polls.urls')), path('admin/',admin.site.urls), ]
对于标签里的href可以用{%url'url名'%}来代替,url名指的是urls.py里的path('login.html/',views.my_login,name='url名'),
Django中通常使用get_object_or_404()来捕捉404错误,而不用自己写try...except
defdetail(request,question_id): question=get_object_or_404(Question,pk=question_id) returnrender(request,'polls/detail.html',{'question':question})
补充:django中url与view配置方法
django中url与view配置方法(一)
url.py
fromdjango.conf.urlsimporturl from.importviews urlpatterns=[ url(r'^$',views.showAssets,name='show_assets'), ]
views.py
#-*-coding:utf-8-*- fromdjango.shortcutsimportrender_to_response #Createyourviewshere. defshowAssets(request): returnrender_to_response('assets_index.html',{})
django中url与view配置方法(二)
url.py
#-*-coding:utf-8-*- fromdjango.conf.urlsimporturl fromapp001.viewsimportIndexView urlpatterns=[ url(r'^admin/',admin.site.urls), url(r'^$',IndexView.as_view(),name="index"),]
views.py
#-*-coding:utf-8-*- fromdjango.views.generic.baseimportView fromdjango.shortcutsimportrender #Createyourviewshere. classIndexView(View): defget(self,request): returnrender(request,'index.html',{})
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。