Python Web开发学习-Django(4)URL配置

什么是urls.py

  url.py本质上就是一个标准的python文件,这个python文件的作用就是再URL请求个处理该请求的视图函数建立一个对应关系,简单来说它就是一个url请求映射表。

urls.py是如何工作的

看一下前面HelloWorld项目中的urls.py文件代码。

from django.contrib import admin
from django.urls import path
from .import views

urlpatterns = [
    path('', views.hello,name='hello'),
    path('admin/', admin.site.urls),
]
  • from django.contrib import admin 导入Django的默认管理站点admin
  • from django.urls import path 导入URL解析函数path()
  • from .import views 导入当前目录中的视图模块views(对应views.py文件)

Urlpatterns变量包含可两个URL映射:   

  path('',views.hello,name='hello'):    

  • 第一个参数为空字符串,用于匹配只使用域名或IP地址的URL,如127.0.0.1:8000.    
  • 第二个参数”views.hello”设置了URL匹配时调用的视图函数。    
  • 第三个参数"name=hello"将URL模式的名称设置为hello.

  path('admin/',admin.site.urls)    

  • 第一个参数为"admin/"用于匹配”域名或IP地址/admin/“格式的URL,如127.0.0.1:8000/admin/

path()和re_path()函数   

 path(routh,view,kwarge=None,name=None)   

 re_path(routh,view,kwarge=None,name=None)

  • 参数routh为URL模式,用于匹配请求的URL中的‘路径’
  • 参数view用于设置路径匹配时调用的视图函数
  • 可选参数kwarge用于设置传递给视图函数的附加数据
  • 可选参数name为URL模式命名。

URL正则表达式

常用的正则表达式

 创建一个项目

views.py文件代码:

from django.http import HttpResponse

def CharInUrl(request):
    return HttpResponse("只包含了大小写字母的URL")
def NumberInUrl(request):
    return HttpResponse("只包含了数字的URL")

urls.py文件代码:

from django.contrib import admin
from django.urls import path
from django.urls import re_path #因为使用的是正则表达式,所以,需要引用re_path
from .import views

urlpatterns = [
    re_path(r'^[A-Za-z]+$',views.CharInUrl),#匹配大小写字母组成的字符串
    re_path(r'^d{2,}$',views.NumberInUrl),#匹配至少两位数字组成的数字字符串
    path('admin/', admin.site.urls),
]

保存之后,启动项目,浏览器输入:http://127.0.0.1:8000/abc

浏览器输入:http://127.0.0.1:8000/1234

只要端口后面输入符合规则的路径,就是返回对应的视图界面。

关注个人公众号:测试开发进阶之路

  

原文地址:https://www.cnblogs.com/zengxuejie/p/13999894.html