❖ 每⼀个URL都会对应⼀个视图函数,当⼀个⽤户请求访问Django站点的⼀个页⾯时,然后就由Django路由系统(URL
配置⽂件)去决定要执⾏哪个视图函数使⽤的算法。这个路由系统我们也称之为url控制器,⼀般是项⽬⽬录和应⽤⽬录
⾥的urls.py⽂件。
❖ URLconf是所有整个Django的⼊⼜,我们想要访问什么,想要去什么地⽅,都取决于URLconf,所以我们需要充分理解
URLconf的⽤法。
❖ 主要有三个:path、re_path、url,接下来具体分析下这三个有什么区别。
❖ path 只能绝对匹配路径地址,不⽀持正则匹配
❖ re_path ⽀持正则匹配,django 1.x版本常⽤
❖ url ⽀持正则匹配,实际上就是return re_path,
❖ 匹配路径统⼀在后⾯加个/,前⾯不⽤加/,如:index/、demo/、demo/page/
❖ url是部分动态不同urls路由,对应不同的view的返回
❖ from django.conf.urls import url
❖ from django.urls import re_path, path
❖ from hello import views
❖ urlpatterns = [
❖ path("index/", views.index),
❖ re_path('^$', views.index),
❖ url('^demo/$', views.demo),
❖ url('^demo/page=(\d+)$', views.page),
❖ ]
❖ ^正则开始$正则结束,\d是数字,()标记⼀个⼦表达式的开始和结束位置,
❖ .任何单字符,?零次或⼀次,+匹配前⾯的⼦表达式⼀次或多次,*零次或多次。
❖ 设置⽂件setting.py⾥⾯有个参数 DEBUG = True,将其更改为False,Django将显⽰标准的404页⾯,ALLOWED_HOSTS = ["*"]views.py 将指定页⾯渲染后返回给浏览器
❖ from django.shortcuts import render
❖ from django.http import HttpResponse, Http404
❖ def index(request):
❖ return HttpResponse("Hello world ! django ~~")
❖ def demo(request):
❖ return render(request, 'demo.html')
❖ def page(request, num):
❖ try:
❖ num = int(num)
❖ return render(request, 'demo.html')
❖ except:
❖ raise Http404
❖ render函数。将指定页⾯渲染后返回给浏览器。
❖ render(request, template_name[, context])
结合⼀个给定的模板和⼀个给定的上下⽂字
典,并返回⼀个渲染后的HttpResponse对象。