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>
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() 获取整个列表
- 获取用户提交post请求过来的基本数据(不包含文件)
- request.GET
- 获取用户提交的get请求
- get()
- getlist()
- 获取用户提交的get请求
- 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")
简写的目的是:减少代码的层级。
参考资料: