Django的不同版本最大区别在于urls如下:
1、Django1中的url
from django.conf.urls import url# 使用url关键字urlpatterns = [
url('article-(\\d+).html',views.article),
url('article-(?P<article>\\d+).html',views.article)
]/<article>
Django1的url支持正则匹配:'article-(\\d+).html':使用正则表达式的分组匹配来获取URL中的参数,并以位置参数形式传递给视图article。'article-(?P<article>\\d+).html':使用正则表达式的分组命名匹配来获取URL中的参数,并以关键字参数的形式传递给视图article。
分组命名正则表达式组的语法是:(?P<name>pattern),其中name是组的名称(视图中的关键字参数必须跟组名一致),pattern是正则表达式。
/<name>/<article>
2、Django2中的url
1.Django2特有的url
url规则:
- path写的是绝对字符串,请求地址必须与路由地址完全匹配
- 使用尖括号 <> 从url中获取参数值
- 可以使用转换器指定参数类型,例如:
捕获一个整数参数age,
若果没有转化器,将匹配任何字符串,也包括路径分隔符 / - path拥有5个转换器:
str:匹配除路径分隔符 / 外的字符串
int:匹配自然数
slug:匹配字母,数字,横杠及下划线组成的字符串
uuid:匹配uuid形式的数据
path:匹配任何字符串,包括路径分隔符 /
from django.urls import path
# 使用path关键字urlpatterns = [
path('article-<article>.html',views.article),
]
/<article>
写好前端HTML页面后需要搭建好Django的settings.py写好HTML页面后发现无法加载。问题出在路径找不到,设置好静态HTML页面路径就可以显示了:
随后发现页面无法显示css效果,但是F12查看网页Network显示路径正确,需要配置好本地路径即可:
紧接着设置好urls即可了,(ps:我用的是2.x版本的Django)如下:
閱讀更多 Beeni 的文章