慕课网-Django入门到进阶-更适合Python小白的系统课程-第2章Django中的路由与视图-2-2url参数设置
第2章 Django中的路由与视图
2-2 url参数设置
url 中的参数
1.在 url 后边用 ? 开始,键与值用等号连接,每对键值用&号区分,如:http://127.0.0.1:8000/app?name=dewei&age=30
2.在路由的参数中用分隔符分开,如:http://127.0.0.1:8000/app/dewei/30
django2 的 url 变量类型
1.字符串类型:匹配任何非空字符串,但不包括斜杠,在不指定类型的前提下,默认字符串类型<str:name>
2.整型:匹配 0 和正整数<int:age>
3.slug:可理解为注释,后缀或附属等概念<slug:day>
4.uuid:匹配一个 uuid 格式的对象<uuid:uid>类似xxx-xx-xx
支持 url 类型的方法
1.from django.urls import path 2.0 以后新方法
2.from django.conf.urls import url 2.0 以前方法,不支持参数中的类型,只能通过正则表达的方式进行基本匹配
Django 2.0 以前 url 参数匹配简介
1.url(r'^add/(?P<name>\w+)/(?P<age>\d+)$')
2.r 非转义原始字符串
3.w+ 匹配1个或多个包括下划线在内的任何字字符:[A-Za-z0-9]
4.d+ 匹配1个或多个数字
为 url 设置别名
1.path('add', view_function, name='add')
2.别名可以在重定向和模板定义的时候直接用别名替代,具体方法会在 template 模板课程中具体讲解
视图读取参数
1.?形式的参数->request.GET.get(参数名)
2.以分隔符形式的参数
3.def index(request, 参数名, 参数名):
print(参数名)
实例
1.进入项目下目录 two,修改文件 views.py
#coding:utf-8
from django.http import HttpResponse
def index(request):
name = request.GET.get('name', '')
age = request.GET.get('age', 0)
return HttpResponse('hello, i am {0}, age is {1}'.format(name, age))
2.看测试效果

3.换一种方式,进入项目下目录 app,修改文件 urls.py,源代码是 1.0 之前的,现在改成 2.0 的
#coding:utf-8
from django.urls import path
from .views import index
urlpatterns = {
path('<str:name>/<int:age>', index)
}
4.进入项目下目录 two,修改文件 views.py
#coding:utf-8
from django.http import HttpResponse
def index(request, name, age):
return HttpResponse('hello, i am {0}, age is {1}'.format(name, age))
5.看测试效果

6.进入项目下目录 app,修改文件 urls.py,添加别名
#coding:utf-8
from django.urls import path
from .views import index
urlpatterns = {
path('<str:name>/<int:age>', index, name = 'index')
}
posted on 2020-01-08 11:48 herisson_pan 阅读(18) 评论(0) 收藏 举报
浙公网安备 33010602011771号