电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

解決django中form表單設置action后無法回到原頁面的問題

瀏覽:168日期:2024-10-20 14:44:23

django中form表單設置action后,點提交按鈕是跳轉到action頁面的,比如設置action為login,網址為192.168.1.128,跳轉后便會來到192.168.1.128/login,F5刷新也會是重新提交表單對話框,無法回到原頁面。

因此就要在django服務器進行重定向,具體就是

from django.shortcuts import redirect#最后返回原頁面return redirect(url)

補充知識:Django + Ajax發送POST表單,并將返回信息回顯到頁面中

將表單數據發送回后端,然后處理后端返回的信息并顯示在當前頁面中,這里使用Ajax進行處理;

那么先看js代碼:

<!--以下為 Ajax腳本 --> <script src='http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'></script> <script type='text/javascript'> $(document).ready(function(){ $('#save').click(function(){ $.ajax({ url:'/api/add_event/', #url type: 'POST',#提交表單的類型,相當于method='post' dataType: 'json', #dataType, 這個是請求后,返回的數據將以json格式顯示 data:{'name': $('#id_name').val(), #在'#'號后面是控件id, 所以千萬不要搞錯了,要不然會出大事的'limit':$('#id_limit').val(),'address': $('#id_address').val(),'start_time': $('#id_start_time').val(),'status': $('#id_status').val(), },#Data這個地方,必須要獲取數據,代表將獲取到的數據發送到后端,后端再進行處理 success:function(data){ console.log(data); #調試使用 console.log(data.status); #調試使用 console.log(data.message); #調試使用 $('.text').text(data.message); #將后端返回到結果通過前端頁面進行展示 }, #注意標點 }); #需要注意標點符號,如果標點符合錯誤了,那ajax基本上都不會執行(否則,后果很嚴重哦) }); #注意標點 }); #注意標點 </script>

注意(踩過的坑):

1.contentType: 'application/json' ——>加入該語句時,在后端print(request.POST)時無法獲取內容,相當于后端根本拿不到數據。因此在網上搜索了解到,使用contentType: “application/json”則data只能是json字符串;不使用時contentType一般為默認的application/x-www-form-urlencoded格式, 因此如果不限制 POST格式,干脆就不寫。

2. 說說“data”這里面需要注意:data:{'name', $('#id_name').val(), } 這其中id_name必須為控件的id 名稱,使用其它的則不能獲取的數據,這個還是得注意。

3. 標注符號,標點符號,標點符號,重要的事情說三遍,當然可以借助專門的編輯器(我主要是懶哦,哈哈)

4. $('.text').text(data.message); 回顯在html中,是對后端返回的數據進行處理

那行回顯在網頁面上面

<font color='red'> <span class='text'></span> </font>

以下為html代碼

<div class='container'> <div class='col-md-4 col-md-offset-4'> <form onsubmit='return false' action='##' method='POST' class='form-horizontal'> <!--此處就是通過后端返回到前端,前端進行展示--> <font color='red'><span class='text'></span> </font> <div class='form-group'><label for='id_name'>發布會名稱:</label><input type='text' name='name' placeholder='發布會名稱' maxlength='128' required /> </div> <div class='form-group'><label for='id_limit'>Limit:</label><input type='number' name='limit' required /> </div> <div class='form-group'><label for='id_address'>發布會地址:</label><input type='text' name='address' placeholder='地址' maxlength='128' required /> </div> <div class='form-group'><label for='id_start_time'>開始日期:</label><input type='text' name='start_time' required /> </div> <div class='form-group'><label for='id_status'>發布狀態:</label><select name='status' id='id_status'> <option value='blank'>-----</option> <option value='1'>True</option> <option value='0'>False</option></select> </div> <div align='center'> <input type='submit' value='保存發布會' ></input > </div> </form> </div></div>

現在來看一下后端的代碼:

from django.views.decorators.csrf import csrf_exempt@csrf_exemptdef add_event(request): if request.is_ajax(): print(request.body) print(request.POST) name = request.POST.get(’name’, ’’) # 發布會名稱 limit = request.POST.get(’limit’, ’’) # 限制人員 status = request.POST.get(’status’, ’’) # 發布會狀態 address = request.POST.get(’address’, ’’) # 發布會地址 start_time = request.POST.get(’start_time’, ’’) # 發布會時間 if name == ’’ or limit == ’’ or status == ’’ or start_time == ’’: return JsonResponse({’status’: 10021, ’message’: ’parameter error’}) # 判斷發布會名稱重復 result = Event.objects.filter(name=name) if result: return JsonResponse({’status’: 10023, ’message’: ’event name already exists’}) if status == ’’: status = 1 try: # Event.objects.create(id = eid, name = name, limit = limit, address = address, status = int(status), start_time=start_time) Event.objects.create(name=name, limit=limit, address=address, status=int(status), start_time=start_time) except ValidationError as e: error = ’start_time format error. It must be in YYYY-MM-DD HH:MM:SS’ return JsonResponse({’status’: 10024, ’message’: error}) return JsonResponse({’status’: 200, ’message’: ’add event success’})

1、在后端處理時,我們需要加入:@csrf_exempt 標記,所以導包from django.views.decorators.csrf import csrf_exempt,否則會出現錯誤csrf_token錯誤 (403)

2、request.is_ajax()判斷當前是否是使用ajax 進行表單提交

3、django request.POST / request.body

當request.POST沒有值 需要考慮:

1.請求頭中的: Content-Type: application/x-www-form-urlencoded request.POST中才會有值(才會去request.body中解析數據),關于Content-Type前面也提到,不寫的錯誤,它就是默認。

request.body的請求數據

b’name=%E5%A4%BA%E5%A4%BA&limit=123‘

request.POST的數據,django已進行自動處理

QueryDict: {‘name’: [‘奪奪’], ‘limit’: [‘123’]

以上這篇解決django中form表單設置action后無法回到原頁面的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
主站蜘蛛池模板: 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 微波萃取合成仪-电热消解器价格-北京安合美诚科学仪器有限公司 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 水成膜泡沫灭火剂_氟蛋白泡沫液_河南新乡骏华消防科技厂家 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 车牌识别道闸_停车场收费系统_人脸识别考勤机_速通门闸机_充电桩厂家_中全清茂官网 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 液压压力机,液压折弯机,液压剪板机,模锻液压机-鲁南新力机床有限公司 | 比亚迪叉车-比亚迪电动叉车堆垛车托盘车仓储叉车价格多少钱报价 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 剪刃_纵剪机刀片_分条机刀片-南京雷德机械有限公司 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 粘度计,数显粘度计,指针旋转粘度计| 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 上海洗地机-洗地机厂家-全自动洗地机-手推式洗地机-上海滢皓洗地机 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 低合金板|安阳低合金板|河南低合金板|高强度板|桥梁板_安阳润兴 北京租车牌|京牌指标租赁|小客车指标出租 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 东莞ERP软件_广州云ERP_中山ERP_台湾工厂erp系统-广东顺景软件科技有限公司 | 尚为传动-专业高精密蜗轮蜗杆,双导程蜗轮蜗杆,蜗轮蜗杆减速机,蜗杆减速机生产厂家 | 南京交通事故律师-专打交通事故的南京律师 | 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 上海阳光泵业制造有限公司 -【官方网站】| 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 |