python django基础二URL路由系统
URL配置
基本格式
from django.conf.urls import url
#循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数传一个参数request,和wsgiref的environ类似,就是请求信息的所有内容
urlpatterns = [
url(正则表达式, views视图函数,参数,别名),
]
urls.py
from app01 import views urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', views.base),#首页匹配
# url(r'^index/', views.index),
# url(r'index/2003/$',views.year)#这样只匹配
# url(r'index/([0-9]{4})/$',views.year)#匹配4个数字字符还可以用\d
# url(r'index/(?P<year>[\d]{4})',views.year)
url(r'index/(?P<year>[\d]{4})/(?P<month>[0-9]{2})/$',views.year)
]
找到应用views文件
def index(request):
return render(request,'index.html')
def base(request):
return render(request,'index.html') # def year(request,a):#()方式传参
# return render(request,'year.html',{'a':a}) # def year(request,year):#(?P<>)方案是传参
# return render(request,'year.html',{'a':year}) def year(request,year,month):#(?P<>)方案是传参
return render(request,'year.html',{'y':year,'m':month})
template/创建对应的html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>欢迎来到index页面</h1>
</body>
</html>
year.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1> 测试页 year</h1>
<h1>{{ y }}{{ m }}</h1>
</body>
</html>
会根据 不同 规则 得到 对应的应答

补充说明
# 是否开启URL访问地址后面不为/跳转至带有/的路径的配置项
APPEND_SLASH=True 如果在settings.py中设置了 APPEND_SLASH=False,此时我们再请求 http://www.example.com/blog 时就会提示找不到页面。
多个应用 实现url路由系统
在settings.py里面
添加2个应用
INSTALLED_APPS = [
'app01.apps.App01Config',
'app02.apps.App02Config',
]
在urls文件中添加
from django.conf.urls import include, url
from django.contrib import admin urlpatterns = [
url(r'^admin/', admin.site.urls),
# url(r'^$', views.base),#首页匹配
url(r'^app01/', include('app01.urls')),#首页匹配
url(r'^app02/', include('app02.urls')),#首页匹配
]
在2个应用中 分别添加 urls 文件
app01中添加 urls.py
from django.conf.urls import include, url
from django.contrib import admin
from app01 import views urlpatterns = [
url(r'^$', views.base),#首页匹配 ]
views.py
from django.shortcuts import render,HttpResponse # Create your views here.
def base(request):
return render(request,'index.html')
app02中添加 urls.py
urls.py
from django.conf.urls import include, url
from django.contrib import admin
from app02 import views urlpatterns = [
url(r'^$', views.base),#首页匹配 ]
views.py
from django.shortcuts import render # Create your views here.
def base(request):
return render(request,'index02.html')
跳转 命令url(别名)
from django.shortcuts import render,redirect
return redirect('/login')
url(r'^home', views.home, name='home'), # 给我的url匹配模式起名(别名)为 home,别名不需要改,路径你就可以随便改了,别的地方使用这个路径,就用别名来搞
在模板里面可以这样引用:
{% url 'home' %} #模板渲染的时候,被django解析成了这个名字对应的那个url,这个过程叫做反向解析
python django基础二URL路由系统的更多相关文章
- Django(二)路由系统、视图、模板
大纲 一.内容概要: 二.上节回顾 三.Django 视图–views 1.获取用户多个数据及文件上传 2.FBV 和 CBV 3.装饰器 四.Django模板补充 - Django模板语言循 ...
- django基础篇02-url路由系统
django的路由系统: 一.基本用法: 1.path('index', views.index), # 通过类的方式创建url映射 2.path('home', views.Home.as_view ...
- day 66 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- day 53 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- django基础2: 路由配置系统,URLconf的正则字符串参数,命名空间模式,View(视图),Request对象,Response对象,JsonResponse对象,Template模板系统
Django基础二 request request这个参数1. 封装了所有跟请求相关的数据,是一个对象 2. 目前我们学过1. request.method GET,POST ...2. reques ...
- python 自动化之路 day 19 Django基础[二]
Django - 路由系统 url.py - 视图函数 views.py - 数据库操作 models.py - 模板引擎渲染 - HttpReponse(字符串) - render(request, ...
- day 65 Django基础十一之认证系统
Django基础十一之认证系统 本节目录 一 auth模块 二 User对象 三 扩展默认的auth_user表 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 auth模块 我们 ...
- URL路由系统-命名空间
命名空间 1.工程Django下的urs.py from django.conf.urls import url,include from django.urls import path,re_pat ...
- Django基础三之路由、视图、模板
Django基础三之路由.视图.模板 目录 Django基础三之路由.视图.模板 1. Django 请求和返回周期 1.1 路由层之路由匹配 1.2 有名分组 1.3 无名分组 2. 反射解析 3. ...
随机推荐
- Balanced Number HDU - 3709 数位dp
题意: 给出范围 算出 满足 选取一个数中任一一个 树作为支点 两边的数分别乘以到中心的距离和 左和等于右和 的数有多少个 数位DP题 状态转移方程为dp[pos][x][state]=dp[ ...
- hdu 2159 FATE (二维完全背包)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 思路: dp[j][k] 代表消耗耐久度j,干掉k个敌人获得的经验值. 状态转移方程为: dp[j] ...
- 为何在新线程中使用注解获取不到Spring管理的Bean
新建的线程类NewThread,在这个类中国使用Spring的注解获取Service,为null 网上已有这种问题的解决方案,但是为何在新线程中使用注解获取不到Spring管理的Bean? 问了老大, ...
- 安装PHP 类库PEAR
PHP扩展与应用库常识 当php项目里没有pear时: 单独安装解决方案 下载下面连接的文件至go-pear.phar.http://pear.php.net/go-pear.phar该文件最好放到P ...
- pytorch CNN 手写数字识别
一个被放弃的入门级的例子终于被我实现了,虽然还不太完美,但还是想记录下 1.预处理 相比较从库里下载数据集(关键是经常失败,格式也看不懂),更喜欢直接拿图片,从网上找了半天,最后从CSDN上下载了一个 ...
- ssh-keygen适用场景与rsync使用id_rsa技巧
ssh-keygen工具可以实现免密码登录服务器可参考之前的blog:http://www.cnblogs.com/Mrhuangrui/p/4565333.html写的比较粗糙 原理说明使用ssh- ...
- 【dfs】p1025 数的划分
P1025 数的划分 题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有 ...
- linux/mac下一键删除下载失败的maven jar包
echo 正在搜索... find . -name "*lastUpdated" | xargs rm -fr echo 搜索完毕
- Http协议常见状态码
206 - 断点下载时用到,客户端请求了一部分内容,服务器成功把这部分内容返回给它,这时候就是用这个状态. 301 - 永久跳转,原地址不存在了,url被指向到另一个地址.这个主要是搜索引擎相关,影响 ...
- http://bsideup.blogspot.com/2015/04/spring-boot-thrift-part3.html
Building Microservices with Spring Boot and Apache Thrift. Part 3. Asynchronous services Posted on 4 ...