• Python Web开发学习-Django(5)获取URL的中的数据


    URL参数传递

    Django在执行URL解析时,可将URL路径的一部分解析为数据,将其作为参数传递给视图函数。

    实例演示

    views.py文件代码:

    from django.http import HttpResponse
    
    def getDate(request,urlDate):
        return HttpResponse("Url获取到的参数是:"+ urlDate)

    urls.py文件代码:

    from django.contrib import admin
    from django.urls import path
    from .import views
    
    urlpatterns = [
        path('<urlDate>',views.getDate),
    ]

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

    代码分析:

      views.py文件内的urlDate就是指的参数abc123

      urls.py文件内的urlDate就是views.py文件的函数,用于接收URL路径中的数据。

    正则表达式参数传递

    实例演示

    views.py文件代码:

    from django.http import HttpResponse
    
    def getDateRe(request,data):
        return HttpResponse("正则表达式Url获取到的参数是:%s" % (data))

    urls.py文件代码:

    from django.contrib import admin
    from django.urls import path
    from django.urls import re_path
    from .import views
    
    urlpatterns = [
        
        re_path(r'^lujing/(?P<data>[a-z0-9]+)$', views.getDateRe),
    ]

    代码分析:正则表达式需要使用“re_path”,lujing指的是路径

    例如运行项目之后,在浏览器里输入:http://127.0.0.1:8000/lujing/adb456

    运行结果:

    传递附加数据

    path(route,view,kwargs=None,name=None),第三个参数就是用于视图函数传递附加数据的,附加数据是字典的形式。

    实例演示:

    views.py文件代码:

    from django.http import HttpResponse
    
    def getDateEx(request,data,ex):
        return HttpResponse("Url的参数是%s,附加数据是:%s" % (data,ex))

    data是参数的值,ex就是你自己定义的附加的数据

    urls.py文件代码:

    from django.contrib import admin
    from django.urls import path
    from django.urls import re_path
    from .import views
    
    urlpatterns = [
        path('extra/<data>',views.getDateEx,{"ex":"123"}),
    ]

    path('extra/<data>',views.getDateEx,{"ex":"123"}),ex后面的值就是附加值123

    浏览器输入:http://127.0.0.1:8000/extra/abc,附加值无需输入,会直接带出来。

    使用带默认值的参数

    1. 可在视图函数中定义带有默认值的参数。
    2. 要调用带默认值参数的视图函数,可在URL模式中定义带参数的不带参数的两种URL偶人来映射视图函数。
    3. 当访问不带参数的URL时,即可使用参数的默认值。

    实例演示

    views.py文件代码:

    from django.http import HttpResponse
    
    def getDateDefault(request,data='abc'):
        return HttpResponse("Url的默认值参数是abc,当前传入的参数是%s," % data)

    urls.py文件代码:

    from django.contrib import admin
    from django.urls import path
    from django.urls import re_path
    from .import views
    
    urlpatterns = [
        path('default',views.getDateDefault), #不带参数时会读取
        path('default/<data>',views.getDateDefault),#带参数时会读取
    ]

    浏览器先输入不带参数的:http://127.0.0.1:8000/default

    浏览器输入带参数的:http://127.0.0.1:8000/default/12345

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

      

  • 相关阅读:
    java基础——标准输入输出重定向,数据流
    java基础——对象流,序列化机制Serializable
    java基础——包装流
    java基础——随机访问流
    java基础——流体系,字符流和字节流基本用法
    读取 xml 文件 获取其中保存的数据信息
    批处理 获取某个文件的,特定 两列,可以修改用来做相关的操作
    写一个最简单的 Server
    对 JDBC 做一个轻量封装,待完善。。。
    从source folder 下将其所有子文件夹的*.* 文件拷贝到 target folder (不拷贝文件夹名仅拷贝文件)
  • 原文地址:https://www.cnblogs.com/zengxuejie/p/14001092.html
Copyright © 2020-2023  润新知