Django study notes -3

URL write rules

URL(Uniform Resource Locator,统一资源定位符)是互联网上标准资源地址。用于指出文件的路径位置。Django中,URL也成为URLconf。

每个App中设置独立的静态资源和模板文件夹并添加一个.py文件,命名为urls.py。

Here Insert Picture Description

在App的urls.py中写入对应URL,项目根目录urls.py 来管理每个App中的urls.py文件。根目录下urls.py编写URL规则如下:

项目目录下的urls.py

Here Insert Picture Description

# 导入Admin功能模块
from django.contrib import admin
# 导入URL编写模块
from django.urls import path,include
# 整个项目URL集合,每个元素代表一条URL信息
urlpattern
# 设定Admin的URL(127.0.0.1:8000/admin)
path('admin/',admin.site.urls),
# URL为空,代表网站域名(127.0.0.1:8000)
path('',include('index.urls'))
首页地址分发给了index的urls.py处理,因此需要配置index的urls.py编写信息,代码如下:

Here Insert Picture Description

index的urls.py编写规则与根目录urls.py大致相同,基本上所有的URL都是有固有的编写格式。
上述代码导入了同一目录下的views.py文件,该文件用于编写视图函数,处理URL请求信息并且返回网页给用户。代码如下:

Here Insert Picture Description

index函数必须设置参数request,该参数代表当前用户的请求对象。包括:用户名,请求内容,请求方式等信息。启动djangoDemo项目后
运行结果如下:

Here Insert Picture Description

URL with variables

日常开发过程中,有时一个URL可以代表多个不同的页面,如编写带有日期的URL,根据前面编写方式,按照一年计算,需要开发者编写365个
不同的URL才	能实现,这种做法显然不可取,因此Django在编写URL时,需要对URL设置变量,使URL具有多样性。
        
    URL的变量类型有字符类型、整型、slug和uuid,最为常见的是字符型和整型。

	● 字符类型:匹配任何非空字符串,不含斜杠。没有指定类型时,默认该类型
	● 整型:	 匹配0和正整数
	● slug:	 可以理解为注释、后缀或附属等概念
	● uuid:	 匹配一个uuid格式的对象
	UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准
	
  根据上述变量类型,在index的urls.py里添加带有字符类型、整型和slug的URL地址信息,代码如下:

Here Insert Picture Description

在URL中使用变量符号“<>”可以为URL设置变量。括号里面以冒号划分为两部分,前面代表变量类型,后面代表变量名称,变量名称可自定义。
上述URL中设置三个变量值,分别是<year>、<int:month>、<slug:day>,变量说明如下:

● <year>		变量名为year,数据格式为字符类型,与<str:year>含义一样
● <int:month>	变量名为month,数据格式为整型
● <slug:day>	变量名为day,数据类型为slug
然后在views.py中编写视图函数mydate的处理方法,代码如下:

Here Insert Picture Description

视图函数mydate有四个函数参数,其中year、month和day来自URL的变量。URL的变量和试图函数要一一对应,如果试图函数的参数与URL变量对
应不上会抛出异常。项目启动如下:

Here Insert Picture Description

Setting name

除了URL里面设置变量之外,Django还可以对URL进行重命名。在index的urls.py、views.py和模板myyear.html中添加如下代码:
● urls.py

Here Insert Picture Description

● views.py

Here Insert Picture Description

● 创建templates文件夹,并且在templates文件夹中添加myyear.html文件

Here Insert Picture Description

上述代码分别从URL、视图函数、HTML模板来说明name具体作用:

1. 用户访问URL,项目根据URL信息选择试图函数myyear处理,并且将URL命名myyear

2. 视图函数myyear将模板myyeear.html作为响应内容弄个并且生成相应的网页返回给用户

3. 在模板myyear.html中分别设置两个标签a,虽然两个标签a的href属性值的写法有所不同,但实质两者都指向名为myyeear的URL地址信息。

4. 第二个标签a的href为{% url 'myyear' 2018%},这是Django的模板语法,模板语法以{% %}表示。

其中,url ‘myyear' 是将命名为myyear的URL地址信息作为href属性值
运行结果如下:	

Here Insert Picture Description

Guess you like

Origin blog.csdn.net/qq_21153997/article/details/92586933