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

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金
蓝月亮料精选资料免费 白玉县| 神池县| 长治县| 通辽市| 资兴市| 铜鼓县| 剑河县| 尚志市| 陈巴尔虎旗| 沂源县| 泽普县| 津南区| 清水县| 调兵山市| 丰台区| 博爱县| 大方县| 江城| 涟源市| 泌阳县| 德保县| 麦盖提县| 南城县| 枣强县| 高淳县| 嘉义县| 濮阳市| 博乐市| 塔河县| 江门市| 图们市| 富宁县| 德保县| 民权县| 绥化市| 葫芦岛市| 岱山县| 丰宁| 博兴县| 黑龙江省| 泸水县| 洪洞县| 三门县| 桂阳县| 莎车县| 布尔津县| 上饶县| 庆元县| 永济市| 连山| 南靖县| 文安县| 昆明市| 颍上县| 石河子市| 若羌县| 庆元县| 项城市| 临高县| 繁昌县| 敦化市| 京山县| 闽侯县| 丰县| 金乡县| 鄂州市| 丹阳市| 延庆县| 武城县| 甘南县| 郁南县| 庄浪县| 老河口市| 高台县| 渝北区| 应城市| 若尔盖县| 庐江县| 吉林省| 淳化县| 南城县| 太保市| 淳安县| 涟源市| 龙江县| 宁都县| 延吉市| 五指山市| 金沙县| 德保县| 淮滨县| 博白县| 灵宝市| 南城县| 榆中县| 蒲江县| 东阳市| 丘北县| 唐海县| 邓州市| 南丹县| 灌阳县| 临邑县| 监利县| 利辛县| 阿拉善盟| 普宁市| 禹城市| 鄂温| 固安县| 吐鲁番市| 新干县| 赤壁市| 崇州市| 西乡县| 皋兰县| 梅河口市| 桐乡市| 余姚市| 南通市| 平安县| 股票| 大同县| 蕉岭县| 博湖县| 泉州市| 宜昌市| 乐山市| 思茅市| 秀山| 福建省| 信丰县| 洮南市| 仁化县| 南通市| 寿阳县| 瓮安县| 甘孜县| 镇江市| 孟连| 米脂县| 仙游县| 曲靖市| 遂昌县| 广饶县| 平乐县| 光泽县| 南平市| 多伦县| 融水| 和顺县| 师宗县| 荥阳市| 肥乡县| 寿光市| 开化县| 西安市| 台湾省| 抚宁县| 牡丹江市| 桓仁| 汉川市| 沂南县| 巨野县| 神农架林区| 万州区| 呼和浩特市| 宁城县| 周口市| 深水埗区| 峨山| 玛沁县| 玉龙| 罗定市| 贵溪市| 万源市| 钟山县| 湖州市| 铜陵市| 高淳县| 高雄市| 南宁市| 海安县| 香格里拉县| 大英县| 随州市| 定日县| 固安县| 民权县| 中山市| 石阡县| 黄陵县| 油尖旺区| 会同县| 临清市| 珠海市| 大丰市| SHOW| 富阳市| 兴文县| 前郭尔| 阳江市| 揭西县| 北辰区| 滁州市| 招远市| 虞城县| 达州市| 金乡县| 安远县| 容城县| 丰宁| 新巴尔虎右旗| 湘西| 孙吴县| 渭南市| 阿鲁科尔沁旗| 西峡县| 探索| 新安县| 富源县| 囊谦县| 东乡族自治县| 陕西省| 长寿区| 绥阳县| 泰和县| 涿州市| 东明县| 镇原县| 青州市| 师宗县| 顺平县| 黄石市| 南岸区| 清水县| 娱乐| 宜都市| 民县| 桃源县| 安图县| 罗甸县| 福建省| 甘泉县| 安远县| 万荣县| 巴东县| 通州区| 汤原县| 大方县| 高碑店市| 太仓市| 鸡东县| 新余市| 浮梁县| 福安市| 伽师县| 新津县| 寻乌县| 专栏| 衡水市| 民权县| 比如县| 玉田县| 东乌珠穆沁旗| 泗水县| 平阴县| 丹江口市| 句容市| 平谷区| 南宁市| 鄄城县| 靖宇县| 怀柔区| 昭平县| 婺源县| 得荣县| 临西县| 厦门市| 河池市| 清丰县| 通许县| 醴陵市| 潜江市| 南雄市| 古田县| 广西| 三门峡市| 托里县| 景东| 珲春市| 子洲县| 南汇区| 南城县| 桂平市| 九龙坡区| 南漳县| 江门市| 襄城县| 余江县| 饶阳县| 高邑县| 会宁县| 前郭尔| 天台县| 凤冈县| 松阳县| 思南县| 咸阳市| 滨海县| 吉水县| 宝丰县| 梅州市| 陆川县| 若尔盖县| 贺州市| 涟源市| 宜宾市| 正阳县| 新民市| 独山县| 成武县| 德保县| 赫章县| 太白县| 深泽县| 荆门市| 潜江市| 澎湖县| 吉木萨尔县| 宁夏| 射阳县| 依安县| 台南县| 冷水江市| 宁城县| 那坡县| 临西县| 桐柏县| 汶川县| 云安县| 华容县| 合江县| 济源市| 永兴县| 北海市| 赤壁市| 揭东县| 杭州市| 区。| 奉化市| 渭源县| 浦东新区| 桃源县| 呼图壁县| 高清| 简阳市| 永胜县| 沙河市| 通榆县| 金川县| 浦县| 循化| 牡丹江市| 浑源县| 清苑县| 名山县| 邹城市| 顺平县| 乐昌市| 临汾市| 永清县| 辉南县| 嘉荫县| 焦作市| 文水县| 建德市| 集贤县| 巴马| 虞城县| 海门市| 长治县| 宜兰县| 长海县| 白水县| 隆子县| 永登县| 封丘县| 海口市| 岳池县| 万盛区| 洛阳市| 霸州市| 阿鲁科尔沁旗| 连州市| 永泰县| 镇沅| 崇阳县| 吉水县| 昌吉市| 嘉定区| 五指山市| 库伦旗| 客服| 朔州市| 徐水县| 沁水县| 吉安市| 安新县| 万荣县| 麻栗坡县| 虞城县| 湟源县| 临清市| 教育| 桦南县| 自贡市| 饶阳县| 永泰县| 麻城市| 屯昌县| 师宗县| 涿州市| 秦安县| 新竹市| 白河县| 金堂县| 象山县| 任丘市| 上栗县| 攀枝花市| 杨浦区| 太原市| 石台县| 英山县| 三穗县| 行唐县| 定兴县| 武邑县| 柳河县| 肥乡县| 佛学| 广南县| 揭西县| 清丰县| 兰州市| 紫金县| 墨玉县| 宁波市| 濮阳市| 盐边县| 金堂县| 聂拉木县| 历史| 新兴县| 菏泽市| 长海县| 湾仔区| 革吉县| 大悟县| 漯河市| 昌都县| 古田县| 开封县| 广平县| 江西省| 永寿县| 鄯善县| 迁安市| 宁河县| 凤城市| 牡丹江市| 依安县| 通道| 德州市| 茌平县| 宁化县| 五台县| 红原县| 丰县| 沂水县| 武隆县| 专栏| 甘肃省| 文安县| 台东县| 东乡| 英德市| 洪湖市| 焦作市| 遂昌县| 全椒县| 噶尔县| 怀柔区| 阳西县| 朔州市| 万载县| 灌阳县| 临汾市| 政和县| 浮梁县| 海伦市| 勃利县| 山阳县| 栾城县| 陈巴尔虎旗| 宿州市| 德惠市| 洛川县| 吴江市| http://www.bo2020subscribes.fun http://m.gz1980defaultc.fun http://wap.bo2020zines.fun http://www.jvz1j5r9o.fun http://wap.gz1980postc.fun http://wap.bo2020cozpletes.fun http://wap.yqo4j9rl2v.fun http://m.gz1980dishc.fun http://www.bo2020directs.fun http://wap.bo2020spends.fun http://wap.yqo2j3rl8v.fun http://m.gz1980accessc.fun http://www.bo2020exists.fun http://wap.bo2020zans.fun http://m.yqo9j5rl2v.fun