Django urls.py

urls.py 路由与视图关系对应函数 - > 路由层

无名分组和有名分组

  1. 什么是无名分组和有名分组
    就是可以直接拿到链接后面携带的参数,也就是urls.py中括号内匹配到的参数传递给后端的对应的函数里面.

  2. 无名分组
# 前端
<a href="/index/content"></a>


# urls.py ==> 在这里 content是括号里面\d+正则匹配的数据
url(r'^index/(\d+)',views.index)


# views.py
def index(request,任意参数)
    print(任意参数)  -> 打印结果: content
    ...
  1. 有名分组 - 其实就是价格名字,后端要用同样的名字接收
# 前端
和上面一样


# urls.py
url(r'^index/(?P<和后端一样的名字>\d+)',views.index)


# views.py
def index(request,和后端一样的名字):
    print(和后端一样的名字) -> 打印结果: content
    ...
  1. 有名分组和无名分组不可以一起使用,可以重复使用

反向解析

前端的访问地址,会随着我后端的urls.py中的地址的变化而变化,使该结果可以直接访问对应的url

# 前端
<a href="{% url 'name名字' %}"></a> -> url这个单词是固定的


# urls.py
url(r'^index/',views.index, name='name名字')


# views.py
from django.shortcuts import render, HttpResponse, redirect,reverse

def index(request):
    print(reverse('name名字'))
    ...
 
# 这样后端也能实时的获取到修改后的访问地址,前端也不需要去修改 ,后端也不需要去修改.

反向解析+无名分组

# 前端
<a href="{% url 'name名字' 数值 %}"></a> -> url这个单词是固定的
    通常 数值 是主键
    
    
# urls.py
url(r'^index/(\d+)',views.index, name='name名字')


# views.py
from django.shortcuts import render, HttpResponse, redirect,reverse

def index(request,xx):
    print(xx) -> 返回值是 数值
    print(reverse('name名字',args=(123,))) -> 记住这样写
    ...

# 反向解析的别名,一定不要重复

反向解析+有名分组

# 前端
<a href="{% url '别名' 数值 %}"></a> -> url这个单词是固定的
    通常 数值 是主键
    
    
# urls.py
url(r'^index/(?P<year>\d+)',views.index, name='别名')


# views.py
from django.shortcuts import render, HttpResponse, redirect,reverse

def index(request,xx):
    print(xx) -> 返回值是 数值
    print(reverse('别名',kwargs={'year': 123})) -> 记住这样写
    ...
    
# 反向解析的别名,一定不要重复

路由分发

django里面的app可以有自己的static文件,templates文件夹,urls.py文件

项目名下面的urls.py不在做路由与视图函数对应关系

然后在app的urls.py完成路由与视图函数的对应关系

项目名下的urls.py完成的是路由的分发

1. 方式一
# 总urls.py
from app01 import urls as app01_users
from app02 import urls as app02_users
from django.conf.urls import url,include

url(r'^app01/',include(app01_users))
url(r'^app02/',include(app02_users))
需要频繁导包,并且需要取别名,因为每个app下的urls.py文件名都是一样的

2. 方式二
# 总urls.py
from django.conf.urls import url,include

url(r'^app01/',include('app01.urls'))
url(r'^app02/',include('app02.urls'))
这种是通过字符串的方式,不需要导包,用到的模块是 importlib ,将我们写的字符串转化成导包的形式

名称空间

在我们分开开发app的时候,可能会出现取相同的别名,并且反向解析的时候是不会自动拼接上这个别名是那个app下面的,所以我们有两种方法去解决

方式一:

# 总urls.py
from django.conf.urls import url,include

url(r'^app01/',include(app01_users, namespace='app01'))
url(r'^app02/',include(app02_users, namespace='app02'))

这种方式就会在取别名的时候弹出来提示

方式二:

也不用很麻烦,就是取名字的时候默认自己拼接上app的名字

伪静态

就是改一下urls.py文件中的搜索的路由名字,加上.html,把我们的网页伪装成静态的,百度会优先收录,就可能排在前面了,提高了搜索引擎的SEO查询优先级

但是---还是干不过人民币玩家

虚拟环境

通常针对不同的项目 只会安装该项目所用的模块 用不到的一概不装
不同的项目有专门的解释器环境与之对应
每创建一个虚拟环境 就类似于重新下载了一个纯净的python解释器
虚拟环境不要创建太多个

django版本区别

django1.x
django2.x

区别1: urls.py中1.x用的是url,而2.x用的是path 并且2.x中的path第一个不支持正则表达式,写什么就匹配什么 如果你觉得不好用,2.x里面还有re_path 这个re_path就是你1.x里面的url

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金
2019香港 六 合 彩资料大全 务川| 教育| 东至县| 焉耆| 崇义县| 甘肃省| 霍州市| 策勒县| 孟村| 大同市| 稻城县| 威海市| 巴林右旗| 托克托县| 佛冈县| 定安县| 新和县| 泸水县| 佛坪县| 望城县| 通河县| 沽源县| 桃源县| 建平县| 雅安市| 女性| 靖西县| 申扎县| 贵州省| 璧山县| 渑池县| 南康市| 兖州市| 孟州市| 黄梅县| 上饶县| 济源市| 香港| 泗洪县| 彰化县| 龙海市| 天门市| 百色市| 吴川市| 广水市| 新野县| 凤台县| 宁武县| 汪清县| 安顺市| 平泉县| 濮阳市| 武威市| 浦县| 桐乡市| 孟津县| 齐河县| 平舆县| 云南省| 从化市| 黄冈市| 金山区| 乐都县| 周口市| 化德县| 惠来县| 牡丹江市| 吉安市| 仪陇县| 长治市| 靖宇县| 福清市| 广平县| 敦煌市| 陆丰市| 天等县| 乌兰察布市| 平山县| 开封县| 瑞丽市| 偏关县| 安图县| 监利县| 金乡县| 贡嘎县| 区。| 九江县| 鸡泽县| 乐亭县| 原平市| 运城市| 蓬溪县| 永顺县| 蛟河市| 神农架林区| 拜泉县| 霍山县| 洱源县| 恭城| 华池县| 滦南县| 庆元县| 南平市| 麦盖提县| 建宁县| 科技| 万宁市| 阿克陶县| 连江县| 藁城市| 全州县| 铜川市| 胶南市| 双城市| 鄂托克前旗| 文昌市| 云和县| 阿尔山市| 屯昌县| 琼结县| 淄博市| 金坛市| 遵义市| 淳安县| 宾阳县| 蓝田县| 巩留县| 大庆市| 祁门县| 信阳市| 曲松县| 汉寿县| 长岛县| 通州区| 武功县| 东阳市| 琼结县| 高要市| 灵山县| 边坝县| 白朗县| 彰化县| 灯塔市| 茂名市| 灵宝市| 屯门区| 德格县| 安溪县| 陕西省| 四子王旗| 塔河县| 宁乡县| 朝阳县| 孝昌县| 方正县| 南澳县| 德保县| 民权县| 周宁县| 莱西市| 穆棱市| 浪卡子县| 长海县| 保亭| 调兵山市| 武功县| 杭州市| 新密市| 旬阳县| 疏附县| 繁峙县| 姜堰市| 三明市| 宜宾县| 临澧县| 海林市| 察哈| 明溪县| 新巴尔虎左旗| 黄陵县| 海宁市| 阿拉尔市| 文安县| 营口市| 嘉荫县| 项城市| 渭南市| 博乐市| 秦皇岛市| 准格尔旗| 洛浦县| 咸阳市| 年辖:市辖区| 红原县| 寿阳县| 阿克陶县| 广宁县| 柯坪县| 乌拉特前旗| 比如县| 馆陶县| 海阳市| 宁南县| 蒲江县| 汉阴县| 日喀则市| 孝昌县| 晋州市| 林周县| 灵石县| 郸城县| 遵义市| 呼玛县| 塔城市| 登封市| 和政县| 莱芜市| 大兴区| 北安市| 偃师市| 郁南县| 开封县| 罗城| 德化县| 南开区| 苗栗市| 宜城市| 阿荣旗| 宁阳县| 波密县| 和田市| 荃湾区| 沈阳市| 克东县| 永定县| 敦化市| 西华县| 梧州市| 界首市| 报价| 汉川市| 五原县| 灵宝市| 苗栗县| 锡林浩特市| 银川市| 扎兰屯市| 呼玛县| 宁波市| 台安县| 清徐县| 台东市| 兴宁市| 新蔡县| 建德市| 海淀区| 腾冲县| 上栗县| 皮山县| 高州市| 朝阳县| 陆良县| 黄陵县| 布尔津县| 南宫市| 邮箱| 台江县| 濮阳县| 仙居县| 葫芦岛市| 津市市| 连云港市| 新乐市| 将乐县| 罗平县| 兴隆县| 周宁县| 永德县| 太保市| 铜川市| 丁青县| 陆良县| 年辖:市辖区| 嫩江县| 马龙县| 荥阳市| 保德县| 金川县| 天气| 满洲里市| 桦川县| 许昌县| 玉门市| 繁峙县| 平泉县| 抚远县| 杭锦后旗| 阳原县| 若尔盖县| 宝清县| 大理市| 武鸣县| 抚顺县| 临桂县| 兴海县| 外汇| 无极县| 溧水县| 滁州市| 吉林市| 漠河县| 南汇区| 杭锦后旗| 加查县| 宜丰县| 河北省| 潼南县| 肥西县| 平凉市| 罗甸县| 金秀| 清徐县| 新巴尔虎左旗| 惠来县| 仁寿县| 甘肃省| 哈巴河县| 甘泉县| 元谋县| 英山县| 松潘县| 文成县| 西丰县| 兴宁市| 丰镇市| 东源县| 桓仁| 伊通| 天水市| 武强县| 阳新县| 会东县| 龙州县| 佛冈县| 高安市| 喀喇沁旗| 西畴县| 北票市| 广州市| 阜平县| 方城县| 南和县| 英山县| 渭源县| 河曲县| 沽源县| 德令哈市| 阳原县| 安徽省| 康保县| 通渭县| 江津市| 屯昌县| 津市市| 涞源县| 鹤峰县| 吕梁市| 宁远县| 平山县| 亳州市| 临桂县| 榆中县| 永济市| 万全县| 寿阳县| 满城县| 湟源县| 芒康县| 资溪县| 广灵县| 蒙自县| 庆元县| 定西市| 壶关县| 澄迈县| 左权县| 永年县| 通化县| 同江市| 诸城市| 唐海县| 奇台县| 阳朔县| 宁武县| 叙永县| 灵石县| 静宁县| 太仓市| 沧州市| 永新县| 洛扎县| 阿合奇县| 沛县| 乌拉特后旗| 胶州市| 翁源县| 宁国市| 轮台县| 长武县| 周口市| 九台市| 莫力| 井冈山市| 温泉县| 松原市| 米易县| 治多县| 萍乡市| 武穴市| 贵港市| 遂溪县| 永丰县| 双辽市| 淳安县| 曲阳县| 宁河县| 安宁市| 曲周县| 丹寨县| 兴和县| 定安县| 鄄城县| 河间市| 铜山县| 资中县| 丰原市| 阿坝| 嘉峪关市| 阿勒泰市| 革吉县| 攀枝花市| 西丰县| 清水县| 晋江市| 亚东县| 阜阳市| 永善县| 崇礼县| 宜阳县| 剑河县| 彭阳县| 建昌县| 沈阳市| 定州市| 沈阳市| 黔西| 自贡市| 奉新县| 江华| 梅州市| 青河县| 富裕县| 峨山| 兴化市| 宁德市| 小金县| 密云县| 双辽市| 巴里| 固阳县| 忻州市| 三原县| 富源县| 威海市| 涿州市| 天峨县| 南漳县| 宣威市| 怀宁县| 清新县| 凌云县| 沙河市| 苏尼特左旗| 湘潭市| 西畴县| 汨罗市| 都昌县| 任丘市| 花莲县| 宜君县| 连州市| 平顺县| 龙山县| 斗六市| 平顶山市| 深泽县| 泰州市| 金门县| 荆州市| 玉龙| 嵊州市| 宜兴市| 定远县| 乳山市| 辽中县| 湄潭县| 杭锦后旗| 阳高县| 安阳县| 印江| http://wap.yqo3j6rl5v.fun http://m.bo2020accesss.fun http://wap.yqo3j5rl4v.fun http://m.gz1980schoolc.fun http://m.bo2020zortgages.fun http://m.yqo9j6rl1v.fun http://m.gz1980circuitc.fun http://www.bo2020noises.fun http://wap.bo2020parts.fun http://m.yqo8j9rl3v.fun http://www.gz1980detailc.fun http://wap.gz1980discoverc.fun http://wap.bo2020dishs.fun http://www.yqo7j9rl1v.fun http://www.jvz0j8r0o.fun