Django----路由控制
Posted lichunke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django----路由控制相关的知识,希望对你有一定的参考价值。
一、概述
‘‘‘ URL是服务器的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的url地址,然后被响应 在Django项目中编写路由,就是向外界暴露我们接收哪些url请求,除此之外的任何url都不被处理,也没有返回。通俗的理解,url就是web服务对外暴露的api 要设计应用程序的url,可以创建一个非正式的称为URLconf的Python模块。此模块是纯Python代码,是URL路径表达式与Python函数之间的映射 ‘‘‘
二、简单的路由配置
from django.conf.urls import url
from django.contrib import admin
from app01 import views # 导入后端逻辑
urlpatterns = [
url(正则表达式,views视图函数,参数,别名),
]
- 正则表达式:一个正则表达式字符串,每个正则表达式前面的r是可选的但是建议加上,它是告诉Python这个字符串是原始的,字符串中的任何字符都不能转义
- views视图函数:一个可调用的对象,通常为一个视图函数或一个指定视图函数路径的字符串
- 参数:可选的要传递给视图的默认参数(字典形式)
- 别名:一个可选的name参数
- urlpatterns中的元素是书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继
path re_path path的区别:
‘‘‘ url格式: url(r‘^admin/‘, admin.site.urls) 需要到导入url模块: from django.conf.urls import url 可用使用正则表达式 Django1.0中使用 re_path: re_path(r‘^publish/([0-9]{4})/([0-9]{2})$‘,views.publish), Django2.0中使用,完全兼容url
需要导入re_path模块: from django.urls import re_path
path:
需要导入path模块: from django.urls import path 不能使用正则表达式,2.0独有 ‘‘‘
三、django2.0版的path
from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path(‘admin/‘, admin.site.urls), path(‘server/<int:proj_id>/‘,views.proj_detail) ]
四、无名分组
- 按位置传参
- 分组后,会把分组出来的数据,当做位置从参数传给视图函数,视图函数必须要定义形参接收,否则报错
- url示例:re_path(r‘^publish/([0-9]{4})/([0-9]{2})$‘,views.publish),
- 视图函数示例:def publish(request,*args):
以上是关于Django----路由控制的主要内容,如果未能解决你的问题,请参考以下文章
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段