• 二、python Django路由与请求(request的参数)


    一、路由

    1.1 urls.py

    基础:

    # 主urls文件
    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('admin/', admin.site.urls),// 读取根目录的路由
        path('index/',include('app1.urls'))// 读取app目录里面的路由(include就是用来包含app目录里面的内容)
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    # app里面的urls文件
    from django.urls import path
    from app1 import views
    
    urlpatterns = [
        path('index/',views.index,name='index') 
        # name会在后面的模板用到如(里面就相当127.0.0.1/a/index/数据A/数据B)
        # 注意使用name有不好的地方就是可能会出现多个路由重复的情况,解决在每个app下添加单独的app_name = 'index'
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.2 路由匹配变量

    1. (可以匹配任何ASCII码、连接符和下划线,如88-ak)
    2. (uuid格式的,如a3d68fa7-e6a1-49f8-ab0d-e7bd7da82672
    3. 可使用正则表达式
    def index(request,id):
       print(id) # 即可打印出来uuid
       return render(request,'index.html')
    
    
    • 1
    • 2
    • 3
    • 4

    1.3 路由参数

    1. name='indexb':配合app_name使用
    2. app_name='indexa':与name一同使用,用法:indexa:indexb这两个参数主要可用于类似:(里面就相当127.0.0.1/a/index/数据A/数据B)
    from django.urls import path
    from testWeb import views
    app_name='index'
    urlpatterns = [
            path('',views.index,name='index')
    ]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    1.4 路由反向解析

    导入:

    from django.urls import resolve
    from django.shortcuts import reverse
    
    • 1
    • 2
    1. reverse("indexa:indexc"):解析出路由地址,此例返回结果为/logggg(地址设有变量写入参数args(列表方式)或者kwargs(字典方式),写入数据)
    2. resolve(reverse("indexa:indexc")):返回结果为该路由的详细信息,如下图
      在这里插入图片描述
    from django.urls import path
    from testWeb import views
    app_name='indexa'
    urlpatterns = [
            path('',views.index,name='index'),
            path('/logggg',views.go,name='indexc')
    ]
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.5 路由重定向

    导入:

    from django.views.generic import RedirectView
    from django.shortcuts import redirect
    
    • 1
    • 2
    1. 路由里面重定向
    urlpatterns=[
    	path('index/',views.index),
    	path('go/',RedirectView.as_view(url="/"))
    
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 视图函数重定向
    def index(request):
    	return redirect('/go')
    
    • 1
    • 2

    二、请求

    1. request.method:获取请求方式
    def go(request):
    	print(request.method)
        return redirect('https://www.baidu.com')
    
    • 1
    • 2
    • 3
    1. request.GET['id']:获取请求参数
    2. request.POST['id']:获取表单提交的数据
    3. request.body:获取ajax提交的json数据
    post=json.loads(request.body) # 变为json数据
    days=post.get("num")
    
    • 1
    • 2
    1. request.COOKIES:获取cookie数据

    2. request.session.values():获取当前用户具体服务器里面储存得session值

    3. request.FILES:获取文件信息

    4. request.META:包含当前HTTP请求的Headers头部信息, 字典形式。键值KEY都是大写。比如**request.META[‘REMOTE_ADDR’]**可获取用户远程IP地址

    5. request.user:获取当前访问用户的所有信息

    6. request.path:获取当前访问路径

  • 相关阅读:
    福建农林大学计算机考研资料汇总
    手撸nano-gpt
    从MES管理系统传到ERP系统的数据有哪些
    服务器cpu和普通cpu有哪些不同
    HTTP协议和web服务器(Tomcat)
    如何使用前端表格控件实现多数据源整合?
    k8spod就绪检查失败
    Idea操作Git合并另一个分支的部分提交
    国内首批!阿里云云原生数据湖产品通过信通院评测认证
    模拟登陆系统
  • 原文地址:https://blog.csdn.net/weixin_46765649/article/details/125697155