Django入门--url路由基本配置
URL(Uniform Resoure Locater)统一资源定位符,是对可以从互联网上得到资源位置和访问方法的一种简洁形式,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器的处理方式。访问者通过url访问网址,服务者通过设置url让访问者进行访问 。
1.URL格式
schema://host[:port#]/path/.../[?query-string][#anchor]
schema 指定使用的协议(例如:http、https、ftp)
host Http服务器的IP地址或者域名(例如:127.0.0.1、www)
port 端口号,http协议默认端口是80(例如:8000)
path 访问资源的路径
query-string 发送给http服务器的数据
anchor 锚点
2.URL的路径查找
当一个请求来到时,
1).首先进入项目目录下的urls.py文件(主urlconf模块)中查找路由规则,
2).项目目录下的urlconf模块定义了urlpatterns变量,
3).urlpatterns是一个(django.urls.path,django.urls.re_path对象)列表,
4).Django按顺序运行每个url模式,在第一个匹配的模式停止,
5).一旦匹配,Django导入并调用给定的视图,
6).如果中间没有匹配到或者出错,将返回404错误
3.path与re_path
在Django2.0代码实现中,主要的变化是新增了 django.urls.path 函数,它允许使用一种更加简洁、可读的路由语法。re_path和path的作用都是一样的。只不过re_path使用正则表达式来写url,其基本规则为
path(route/<xx>/, views, kwargs=None, name=None)
route 匹配 URL 的准则。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的 项,直到找到匹配的项
<xx> 使用尖括号(<>)从url中捕获值,包含一个转化器类型,如:str、int、slug、uuid、path
views 视图函数。当前面的url匹配成功后,就会调用该视图函数
kwargs 默认参数,传递一个Python 字典作为额外的参数传递给视图函数
name 默认参数,为 URL 取名,方便 Django 的任意地方引用
使用path的例子:视图函数index中含有num参数
path("index/<int:num>", views.index, name="index")
使用re_path的例子:视图函数message中含有year和month参数
re_path("message/(?P<year>\d{4})/(?P<month>[1-9]|1[0-2])", views.message, name="message")
4.路由基本配置
方法一:在主目录urls.py文件中配置
1).在项目目录下新建views.py文件,用来编辑视图函数
from diango.http import HttpResponse
def index(request, num):
return HttpResponse('%num期学生的主页' %num)
2).在项目目录下的urls.py编辑规则
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('index/<int:num>', views.index, name="index")
]
方法二:在应用urls.py文件中配置
当视图越来越多时,需要配置多个url,写在一个主目录urls.py文件中会容易造成混淆,因此在各自的app应用中新建urls.py文件并配置url,然后通过"inclue"方法与主目录urls.py建立连接,例如新建了student应用
1).在student中的views.py编辑视图
from diango.http import HttpResponse
def login(request):
return HttpResponse('学生登录页面')
2).在student中的urls.py配置路由
from django.urls import path
from . import views
app_name = "student"
urlpattern = [
path('login/', views.login, name="login")
]
3).在项目目录下的urls.py建立连接
from django.contrib import admin
from django.urls import inclue
urlpattern = [
path('admin/', admin.site.urls),
path('student', inclue('student.urls'))
]
Django入门--url路由基本配置的更多相关文章
- Django 02 url路由配置及渲染方式
Django 02 url路由配置及渲染方式 一.URL #URL #(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...
- 3/19 Django框架 url路由配置及模板渲染
3/19 Django框架 url路由配置及模板渲染 1.路由分配 URL(Uniform Resoure Locato):统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示, ...
- Django之url路由
Django之url路由 url路由介绍 url路由是关联url及其视图函数关系的过程. 作用就是使views里面处理数据的函数与请求的url建立映射关系 url路由配置 Django的url路由配置 ...
- django中url路由配置及渲染方式
今天我们学习如何配置url.如何传参.如何命名.以及渲染的方式,内容大致有以下几个方面. 创建视图函数并访问 创建app django中url规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ...
- Django的URL路由系统
一. URL配置 URL配置就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图之间的映射表.你就是以这种方式告诉Django,对于哪个URL调用的这段代码. 基本格式 from ...
- Django之URL路由系统
一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...
- Django之URL(路由系统)用法
路由系统 路由系统概念 简而言之,路由系统就是路径和视图函数的一个对应关系.django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系.使请求到来之后,根据urls.py里 ...
- Django的URL路由基础
一.概述 URL路由在Django项目中的体现就是urls.py文件,这个文件可以有很多个,但绝对不会在同一目录下.实际上Django提倡项目有个根urls.py,各app下分别有自己的一个urls. ...
- Django模板及路由的配置
学习内容: (1)路由的配置 (2)模板的介绍 (3)模板显示数据 一.路由的配置 以上一篇文章的名字Booketest项目,有一个子模块demo1进行讲解. 1.首先在Booktest项目下的同名子 ...
随机推荐
- iOS 隐藏NavigationBar的方法
使用下面方法: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationCon ...
- 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然
from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...
- [NOIP 2007] 树网的核
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1999 [算法] 树的直径 + 单调队列 [代码] #include<bits/ ...
- C Linux read write function extension
前言 - 赠送 readn / writen Linux 上默认的 read 和 write 函数会被信号软中断. 且 read 和 write 函数中第三个参数 count #include < ...
- 不用任何插件,实现一个tab栏切换
//使用jquery中获取当前索引的方法.显示隐藏 <script> $(".tab_list li").on('click', function () { $(thi ...
- Npgsql使用入门(二)【实用助手类】
数据库映射的实体类: public class Test { public long TestID { get; set; } public string Name { get; set; } pub ...
- MongoDB: The Definitive Guide
第一章 简介 MongoDB是面向文档的数据库,不是关系型数据库.内置对MapReduce的支持,以及对地理空间索引的支持. 丰富的数据模型 容易扩展,它所采用的面向文档的数据模型可以使其在多台服务器 ...
- Android 低功耗蓝牙的多设备连接与数据接收,简单实现
在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...
- BS程序性能调优
首先想到的是优化算法.改进技术.扩展设备去做优化.其实在讨论性能的时候,绕不开对业务的理解,不同的业务系统对性能的要求不同,优化方式也不一样.优化性能的前提是保证业务的正确性.我们平时关注的性能主要是 ...
- Java基础7一面向对象
1.构造方法: (1)定义:方法名称必须和类名相同,没有返回值,也没有void (2)语法: [访问修饰符] 类名(){ } (3)作用:创建对象.初始化成员变量. (4)构造方法的分类: A.无参数 ...