Django URL和View的关系说明
url和view的关系
1、每次用户发来一个httprequest请求,django会用url_pattern与请求进行匹配,匹配到第一个url_pattern就会把请求转向对应的view
2、view用来响应request,并返回response,response里可以包含网页文件呀,图片等等。所以项目中绝大部分代码均在此编写。
view 可以引入通用模板来减少代码量,具体查看文档
use generic views
3、view引入html文件的方法:
在一个app下建立一个templates文件夹,将html文件放进去该文件夹
这里其实不一定要把html文件放在这个templates里,可以随意定义
不过,需要在setting.py里,找到templates,
修改dirs:[ os.path.join (base_dir,'你定义的html存放的文件夹')]
在app下 view.py 文件,在里面写好view函数
def 函数名(request):
return render(request,'index.html')
render(渲染)需要三个变量, 第一个变量是request请求,第二个是模版所在目录,第三个是一个字典(可选),字典用于对应模板里设计的变量,可以用locals()将函数里设计的变量自动转换为字典
4、在对于app下创建一个urls.py ,写入如下内容
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
5、在项目文件夹里找到 urls.py 加入如下内容
from django.urls import include, path urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ]
对于<a>标签里的 href 可以用 {% url 'url名' %}来代替,url名指的是 urls.py 里的path('login.html/', views.my_login, name='url名'),
django 中通常使用 get_object_or_404()来捕捉 404 错误,而不用自己写 try...except
def detail(request, question_id): question = get_object_or_404(question, pk=question_id) return render(request, 'polls/detail.html', {'question': question})
补充:django中url与view配置方法
django中url与view配置方法(一)
url.py
from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.showassets, name='show_assets'), ]
views.py
# -*- coding: utf-8 -*- from django.shortcuts import render_to_response # create your views here. def showassets(request): return render_to_response('assets_index.html', {})
django中url与view配置方法(二)
url.py
# -*- coding: utf-8 -*- from django.conf.urls import url from app001.views import indexview urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', indexview.as_view(), name="index"), ]
views.py
# -*- coding: utf-8 -*- from django.views.generic.base import view from django.shortcuts import render # create your views here. class indexview(view): def get(self, request): return render(request, 'index.html', {})
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
推荐阅读
-
Django中ORM外键和表的关系详解
-
【自学笔记/Django/2】Django中模板、视图和url的关系及模板继承
-
Django URL和View的关系说明
-
Django中url与path及re_path的区别说明
-
Android面试篇之View和ViewGroup的关系
-
Activity,Window,View的关系(sundy深入浅出)之四大组件和Intent
-
django反向解析URL和URL命名空间的方法
-
java的URI和URL的关系
-
Apache服务器上同时运行php的网站和django的网站,该如何配置Apache和Django的URL?
-
Django学习之十一:真正理解Django的路由分发和反解url原理