Django之--POST方法处理表单请求
2018-06-18 03:03:57来源:未知 阅读 ()
上一篇:Django之--MVC的Model 演示了如何使用GET方法处理表单请求,本文讲述直接在当前页面返回结果,并使用更常用的POST方法处理。
一、首先我们修改下page.html
<!DOCTYPE html> <html> <h3>{{ 标题 }}</h3> <body> <p> {% for 商品 in 商品列表 %} <li><font face="verdana" color="blue" size=4>{{ 商品 }}</font></li> {% endfor %} </p> <br> <form action="/product" method="post"> #修改为/product,方法修改为post,我们通过此url展示商品和查询结果 {% csrf_token %} #添加1 <input type="text" name="q"> <input type="submit" value="查看商品信息"> </form> <p>{{ 结果 }}</p> #添加2:这里预留一个结果显示行 </body> </html>
{% csrf_token %}的标签:csrf 全称是 Cross Site Request Forgery。这是Django提供的防止伪装提交请求的功能。POST 方法提交的表格,必须有此标签。
二、然后我们编写product.py文件:
from django.shortcuts import render from django.views.decorators import csrf from . import mysql def page(request): context={} context['标题'] ='商品种类:' pro_list=mysql.db_query("select distinct name from product") context['商品列表']=[] for i in range(0,len(pro_list)): context['商品列表'].append(pro_list[i][0]) if request.POST: pro=request.POST['q'] if not pro.strip(): context['结果'] = '搜索项不能为空' else: price_quan=mysql.db_query("select price,quantity from product where name='%s'"%(pro)) price=str(price_quan[0][0]) quantity=str(price_quan[0][1]) context['结果'] = '你搜索的商品为: ' + pro + '商品价格为:' + price + '商品余量为:' + quantity return render(request,'page.html',context)
然后这里再贴一下上一篇GET方法的写法作对比:
# -*- coding: utf-8 -*- from django.http import HttpResponse from django.shortcuts import render from . import mysql # 表单 def page(request): context={} context['标题'] ='商品种类:' pro_list=mysql.db_query("select distinct name from product") context['商品列表']=[] for i in range(0,len(pro_list)): context['商品列表'].append(pro_list[i][0]) return render(request,'page.html',context) # 接收请求数据 def result(request): request.encoding='utf-8' pro=request.GET['q'] if not pro.strip(): message = '搜索项不能为空' else: price_quan=mysql.db_query("select price,quantity from product where name='%s'"%(pro)) price=str(price_quan[0][0]) quantity=str(price_quan[0][1]) message = '你搜索的商品为: ' + pro + '商品价格为:' + price + '商品余量为:' + quantity return HttpResponse(message)
三、最后修改下urls.py
from django.conf.urls import url from . import view,testdb,search,product urlpatterns = [ url(r'^hello$', view.hello), url(r'^product$', product.page), ]
最后的展示结果如下:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python_字符串方法 2019-08-13
- Django项目中使用qq第三方登录。 2019-08-13
- python_公共方法 2019-08-13
- Django和前端用ajax传输json等数据 2019-08-13
- python3 之 判断闰年小实例 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash