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

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金
一,肖一码′期期准 唐河县| 商水县| 天镇县| 康保县| 扎兰屯市| 漳浦县| 德格县| 安多县| 新兴县| 台江县| 六枝特区| 和林格尔县| 康保县| 新田县| 南京市| 玉龙| 曲沃县| 堆龙德庆县| 鹤壁市| 银川市| 宝坻区| 任丘市| 溧阳市| 大同市| 会泽县| 正蓝旗| 玛曲县| 瑞昌市| 康保县| 衡山县| 龙州县| 米易县| 长寿区| 万年县| 宜宾市| 延川县| 白玉县| 乐安县| 葵青区| 广水市| 盖州市| 洪湖市| 江孜县| 清涧县| 肃南| 安远县| 衡阳县| 巫溪县| 庆云县| 汶上县| 高密市| 商丘市| 永嘉县| 工布江达县| 吉木萨尔县| 大埔县| 托克托县| 宁城县| 英山县| 盐边县| 正宁县| 循化| 昌图县| 开平市| 龙井市| 萝北县| 北海市| 汝南县| 汉川市| 温泉县| 梨树县| 泰来县| 若羌县| 吉林市| 视频| 昌宁县| 旺苍县| 繁昌县| 新巴尔虎右旗| 江源县| 长顺县| 五河县| 同心县| 郓城县| 思南县| 乌鲁木齐市| 项城市| 剑河县| 安化县| 章丘市| 万载县| 郯城县| 汪清县| 彝良县| 陇南市| 永兴县| 布尔津县| 邵东县| 阳朔县| 循化| 和田县| 密山市| 鄄城县| 萍乡市| 襄樊市| 泗洪县| 鄂伦春自治旗| 黄浦区| 甘孜| 翁牛特旗| 鄂托克前旗| 西充县| 定州市| 红安县| 历史| 洛南县| 中卫市| 遵义市| 年辖:市辖区| 仙居县| 滦平县| 乌什县| 青岛市| 娱乐| 凤翔县| 山东省| 二手房| 宁津县| 揭西县| 甘谷县| 军事| 通山县| 平江县| 和平县| 政和县| 宣化县| 定安县| 从江县| 德阳市| 准格尔旗| 伊金霍洛旗| 布尔津县| 丰原市| 江源县| 辉南县| 莱阳市| 潜江市| 彭泽县| 安阳市| 垦利县| 辽中县| 昂仁县| 江山市| 洛隆县| 怀仁县| 邹平县| 荥经县| 斗六市| 西和县| 武威市| 丹阳市| 富锦市| 土默特左旗| 讷河市| 南开区| 上饶县| 河间市| 云南省| 泽州县| 衡山县| 儋州市| 云梦县| 汝南县| 北海市| 泗水县| 醴陵市| 阳朔县| 都昌县| 宁海县| 望都县| 岳池县| 金溪县| 奈曼旗| 随州市| 永寿县| 高青县| 金堂县| 蓬安县| 兴文县| 西青区| 裕民县| 贵德县| 定西市| 凤山市| 桑日县| 安福县| 武乡县| 资阳市| 鄂伦春自治旗| 台江县| 香河县| 丰城市| 新安县| 衡南县| 常德市| 白水县| 固安县| 密山市| 靖宇县| 甘肃省| 滦平县| 蒙山县| 沿河| 长岛县| 静乐县| 秦安县| 博乐市| 德保县| 石渠县| 新竹县| 宣城市| 惠来县| 恩施市| 房产| 吴堡县| 桑植县| 宜城市| 西乌珠穆沁旗| 巩留县| 云和县| 陆川县| 会宁县| 龙泉市| 华安县| 即墨市| 太康县| 张家界市| 乌拉特中旗| 松阳县| 盘山县| 兰州市| 文化| 永修县| 武清区| 宜都市| 镇沅| 平凉市| 青岛市| 罗平县| 井陉县| 任丘市| 教育| 海阳市| 法库县| 和平区| 库车县| 工布江达县| 陆良县| 商河县| 靖西县| 河东区| 如皋市| 璧山县| 左云县| 高淳县| 鄂托克前旗| 河南省| 荥阳市| 安徽省| 平陆县| 邯郸县| 麻江县| 达州市| 长海县| 永顺县| 米泉市| 沁水县| 灌云县| 华蓥市| 黔西县| 蕉岭县| 林芝县| 西昌市| 嘉义县| 理塘县| 雷州市| 手游| 湖州市| 阿图什市| 依安县| 汉源县| 桦甸市| 罗甸县| 通城县| 于田县| 天祝| 安岳县| 浦北县| 黔江区| 仙桃市| 浏阳市| 乐平市| 乾安县| 赤城县| 巧家县| 历史| 玛多县| 金山区| 武山县| 垣曲县| 泗洪县| 衡阳县| 邵东县| 遂川县| 梅河口市| 武邑县| 永善县| 潍坊市| 仁寿县| 抚远县| 鄂托克前旗| 宜州市| 星座| 黄陵县| 长治县| 丹阳市| 庆元县| 新沂市| 桐乡市| 海淀区| 会理县| 嵊州市| 马公市| 广西| 正镶白旗| 当雄县| 民县| 华蓥市| 定州市| 梧州市| 遂宁市| 克拉玛依市| 姜堰市| 禹城市| 昭觉县| 陕西省| 苗栗市| 安岳县| 绥德县| 郴州市| 庆安县| 庆城县| 通化市| 麻城市| 琼中| 房产| 英吉沙县| 枣强县| 金寨县| 海口市| 茂名市| 青海省| 叶城县| 沿河| 双峰县| 建平县| 云梦县| 深水埗区| 商城县| 宁陕县| 霍林郭勒市| 洛宁县| 西畴县| 霍林郭勒市| 都兰县| 皮山县| 勃利县| 保德县| 运城市| 乌兰县| 正宁县| 什邡市| 邢台县| 定结县| 平湖市| 苍溪县| 保亭| 广河县| 青阳县| 芦溪县| 雷州市| 子长县| 湖南省| 诏安县| 平陆县| 惠东县| 六安市| 车致| 大丰市| 宣汉县| 屯门区| 邵阳市| 刚察县| 兴隆县| 克东县| 聊城市| 叙永县| 田阳县| 宕昌县| 东丽区| 兴海县| 五莲县| 绥中县| 汉阴县| 黑龙江省| 天全县| 高阳县| 宣城市| 冕宁县| 和静县| 武功县| 曲水县| 富源县| 巫溪县| 宜阳县| 绥棱县| 澜沧| 崇阳县| 虞城县| 车险| 新化县| 昔阳县| 瑞金市| 大关县| 清涧县| 阜城县| 宁河县| 修水县| 玉环县| 新巴尔虎右旗| 黑龙江省| 石楼县| 乌兰县| 山东省| 大石桥市| 通山县| 海原县| 禹城市| 清镇市| 南开区| 嫩江县| 阿坝县| 保亭| 尼勒克县| 会泽县| 汶川县| 桃源县| 镇江市| 库尔勒市| 临沭县| 凯里市| 闵行区| 台南县| 弋阳县| 罗江县| 达尔| 荃湾区| 林口县| 襄汾县| 灵石县| 任丘市| 黔东| 曲靖市| 福贡县| 夹江县| 永嘉县| 原平市| 旬邑县| 万载县| 漠河县| 什邡市| 黑龙江省| 新化县| 雷山县| 淳化县| 新源县| 呼和浩特市| 景德镇市| 乌兰察布市| 抚宁县| 奎屯市| 平南县| 松原市| 旬邑县| 务川| 双江| 卫辉市| 青铜峡市| 凤台县| 玉林市| 马龙县| 仁布县| 广南县| 荔浦县| 安塞县| 连州市| 抚州市| 涿州市| 清远市| 微博| http://wap.yqo9j4rl4v.fun http://wap.bo2020blacks.fun http://www.gz1980carec.fun http://www.bo2020breaks.fun http://www.yqo0j4rl4v.fun http://wap.yqo6j8rl8v.fun http://m.gz1980guardc.fun http://www.bo2020contests.fun http://www.yqo1j1rl5v.fun http://wap.yqo5j1rl7v.fun http://www.gz1980lizitc.fun http://wap.gz1980zeasurec.fun http://m.bo2020rounds.fun http://www.yqo5j3rl5v.fun http://wap.yqo3j0rl3v.fun