Django--基础--request

HTML页面关键代码

  • <form action="" method="post">

     

  • <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <!--导入jquery-->
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
        <!--导入bootstrap-->
        {% load static %}
    
        <link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.css'%}  ">
        <script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.js' %}"></script>
    </head>
    
    <body>
    
    <div class="container">
        <div class="row">
            <h1 class="text-center">登陆</h1>
            <div class="col-md-8 col-md-offset-2">
                <form action="" method="post">
                    <p>username:<input type="text" name="username" class="form-control"></p>
                    <p>password<input type="password" name="password" class="form-control"></p>
                    <input type="submit" class="btn btn-success">
    
                </form>
                
                
            </div>
        </div>
    </div>
    
    </body>
    </html>
    HTML

     

views视图代码:

  • def login(request):
        # print("触发了~")  # 默认这个form表单多次触发
        # return render(request, "login.html")
    
        if request.method == "GET":
            return render(request, "login.html")
        elif request.method == "POST":
            return HttpResponse("收到!")

     

效果:

 

扩展:

1.form表单知识:

  • action 控制后端提交的路径
    •   1.不写:默认朝当前页面地址提交数据
    •   2.相对路径(也叫后缀):/index/ 
    •   3.绝对路径:https:www.baidu.com
  • method 请求方法
    •   get
    •   post

2.request对象方法

  • request.method 获取当前请求的请求方法,并且结果是纯大写的字符串
  • request.POST 直接看成字典即可
    • 获取用户提交post请求过来的基本数据(不包含文件)
      • get()   获取列表最后一个元素
      • getlist()  获取整个列表
  • request.GET 
    • 获取用户提交的get请求
      • get()
      • getlist()
  • request.FILES
    • 拿到文件
    • 注意:在HTML中form表单要增加:
      • <form action="" method="post" enctype="multipart/form-data">

         

    •  

       

       

 

3.视图函数书写可以简写为:

def login(request):
    if request.method == "POST":
        return HttpResponse("收到~")
    return render(request,"login.html")

简写的目的是:减少代码的层级。

 

参考资料:

 

posted @ 2023-05-04 11:58  o蹲蹲o  阅读(14)  评论(0编辑  收藏  举报