zoukankan      html  css  js  c++  java
  • django的url分配和url捕获参数

    django的url分配

    • 一般视图模块(views.py)都放在自己所属的app目录下,在app目录下新建路径模块(urls.py),由app目录下的urls.py来分配当前app的路径。
    • 在app目录下新建视图函数
      1 from django.shortcuts import render, HttpResponse
      2 
      3 
      4 # Create your views here.
      5 
      6 
      7 def test(request):
      8     return HttpResponse("HELLO WORLD")
    • 然后再到app目录下的urls.py中配置路由
      1 from django.urls import path
      2 from .views import *
      3 
      4 app_name = 'crm'
      5 
      6 urlpatterns = [
      7     path('test.html/', test),
      8 ]

      path方法里面有两个参数,第一个是视图函数的路由,第二个是该路由对应的视图函数的函数名(注意是函数名,不要带括号)

    • app_name是当前app名的字符串,防止在后面的path,repath中出现重复的url名而发生难以进行的区分和管理。
    • 最后带项目跟目录下配置该app的路径,将app目录里的urls.py包裹在项目根目录下的urls.py里
      1 from django.contrib import admin
      2 from django.urls import path, include
      3 
      4 
      5 urlpatterns = [
      6     path('admin/', admin.site.urls),
      7     path('crm/', include('crm.urls')),
      8 ]

      这个path接受两个参数,第一个是需要包含的app的名字,以"/"结尾, include里接受一个字符串("%s.urls" % app_name)

    • 最后启动服务,在manager.py的同级目录下 : python    manager.py    runserver   127.0.0.1:1234  (你能映射的ip地址)。 然后打开浏览器输入:127.0.0.1:1234/crm/test.html即可看到视图函数返回的页面
    • path的完整规则:    path(route, view, kwargs=None, name=None)
    • route:是一个路由规则
    • view是视图函数名
    • kwargs额外参数,是一个字典
    • name是url规则的名字

    django在url中捕获参数

      在urls.py(项目目录下)定义url规则时使用变量名可以捕获url中的值,传递给视图

    • 到app下的view模块中新建个带有参数的视图函数
      1 from django.shortcuts import render, HttpResponse
      2 
      3 # Create your views here.
      4 def test(request):
      5     return HttpResponse("HELLO WORLD")
      6 
      7 def index(request, pk):
      8     return HttpResponse("你输入的参数是:%s" % pk)
    • 再到app下的urls.py中为这个函数配置路由,用<>包裹视图函数中的参数
      1 from django.urls import path
      2 from .views import *
      3 
      4 app_name = 'crm'
      5 
      6 urlpatterns = [
      7     path('test.html/', test),
      8     path('index/<pk>/', index)
      9 ]

       注意每条路由都由"/"结尾

    • 最后启动服务,在浏览器中输入:127.0.0.1:1234/index/8, 返回想应得页面

             

    • 注意:路由中的参数必须和视图函数中的一致

      路径转换器

      当我们想约束参数的类型的时,可以使用路径转换器

      常见的路径转换器:

    • int:必须为整数
    • str:匹配除了"/"路径分割符之外的所有的字符串
    • slug:匹配任意ASCII字符+连字符和下划线
    • uuid:格式化uuid
    • path:匹配任意非空字符

      转换器用法:

    path('index/<int:pk>/', index)
    

      注意:转换器(int)和参数中的冒号之间不能有空格

  • 相关阅读:
    naotu.baidu.com 非常棒的脑图在线工具
    编程常用英语词汇大全
    我的总结,编程人生
    排序箭头,升序,降序简单实现
    jquery网页倒计时效果,秒杀,限时抢购!
    echarts入门,5分钟上手写ECharts的第一个图表
    严谨的程序案例Api
    github Travis CI 持续集成
    Cmake使用
    Linxu安装Lamp环境
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/10574767.html
Copyright © 2011-2022 走看看