• 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

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

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

      

  • 相关阅读:
    路由系统
    flask_sqlalchemy的使用
    input()输入语句
    注释
    Python 2017.1.5
    关于object网页播放器参数的设置,推荐博客系列
    LRU缓存,大神写的,值得借鉴
    object,网页播放器的相关属性设置
    js的apply和call方法
    count()函数在count()中参数的讨论
  • 原文地址:https://www.cnblogs.com/zengxuejie/p/13999894.html
Copyright © 2020-2023  润新知