django中发送get post请求并获得数据

文章详细介绍了在Django中如何处理GET和POST请求。通过`request`对象获取GET参数,如使用`request.GET[a]`和`request.GET.get(c,novalue)`。对于POST请求,文章展示了如何创建HTML表单并使用`request.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)

把表单中提交的数据获取出来
并返回
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值