django中发送get post请求并获得数据
- 项目结构如下
- 注册路由 urls.py
- 在处理函数中处理请求 views.py
- 进行 get的请求
- 01浏览器 get请求传参数
- 02服务器django get参数解析获取
- 01浏览器 post的发送
- 浏览器get 请求 获取页面
- 返回的 form 发送post请求 带参数
- 02服务器django的post请求数据解析参数--解决csrf的问题
项目结构如下
注册路由 urls.py
# 测试get post
path('text_get_post', views.test_get_post),
#text_get_post 是路由url views.test_get_post 是处理函数
在处理函数中处理请求 views.py
def test_get_post(request):
if request.method == 'GET':
#处理get 请求
elif request.method == 'POST':
#处理post请求
else:
return HttpResponse("is ok")
进行 get的请求
01浏览器 get请求传参数
http://127.0.0.1:8000/text_get_post?a=12&c=45
a=12&c=45 就是参数
02服务器django get参数解析获取
def test_get_post(request):
if request.method == 'GET':
#处理get 请求
# text_get_post?a=12&c=45
# 从request 的GET字典中获取 a 如果没有就会报错
# text_get_post?c=45 没有a 就会报错
a = request.GET['a']
# text_get_post?a=12
# 从request 的GET字典中获取 c 如果没有就会 使用no value 默认值
c = request.GET.get('c', "no value")
# 获取列表 存在多个同key
# text_get_post?a=12&c=45&d=45&d=77&d=11
# ['45', '77', '11']
d = request.GET.getlist('d', "no value")
# 当存在
print(c)
print(a)
print(d)
return HttpResponse(temp)
elif request.method == 'POST':
#处理post请求
else:
return HttpResponse("is ok")
总结就是
GET[‘a’] 如果url 没有传递过来 就会报错
GET.get(‘c’, “no value”) 如果url 没有传递过来 就会使用默认值
request.GET.getlist(‘d’, “no value”) 当存在多个相同key 就会形成列表
01浏览器 post的发送
可以get 请求返回页面 页面中存在form form 进行post 请求
在views.py
def test_get_post(request):
if request.method == 'GET':
# GET POST的处理
temp = '''
<form method="post" action="/text_get_post">
姓名: <input type="text" name="username" >
<input type="submit" value="提交">
</form>
'''
return HttpResponse(temp)
elif request.method == 'POST':
username = request.POST['username']
print(username)
return HttpResponse(username)
浏览器get 请求 获取页面
返回的 form 发送post请求 带参数
一下代码就会发送post请求
temp = '''
<form method="post" action="/text_get_post">
姓名: <input type="text" name="username" >
密码: <input type="text" name="pass" >
年龄: <input type="text" name="age" >
<input type="submit" value="提交">
</form>
'''
02服务器django的post请求数据解析参数–解决csrf的问题
elif request.method == 'POST':
username = request.POST['username']
passd = request.POST['pass']
age = request.POST['age']
print(username+passd+age)
return HttpResponse(username+passd+age)
把表单中提交的数据获取出来
并返回