• 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'))
    ]
    
  • 相关阅读:
    Linux虚拟内存管理(glibc)
    linux kernel内存回收机制
    Linux的Cache Memory(缓存内存)机制
    imx6用文件io操作gpio
    imx6中iomux IO复用
    start with git
    Linux进程的虚拟内存区域划分
    关于函数返回值为指针类型的分析
    对LCD接口的认识
    LCD屏背光驱动调试心得---血的教训
  • 原文地址:https://www.cnblogs.com/rongzhen/p/10404247.html
Copyright © 2020-2023  润新知