django用jquery的ajax提交表单,中间件的CsrfViewMiddleware问题

el/2024/7/17 21:42:46

 

首先要引入jquery文件。

 

<script src={% static 'jquery/jquery.min.js' %}></script>

注意这句是要添加到自己写的jquery脚本前边。

 

 

 

 

 

然后写一个简单的表单

<form method="post" id="formadd">{% csrf_token %}<label for="id_name">用户名</label><input type="text" id="id_name"/><label for = "id_password">密码</label><input type="password" id="id_password"/><button type="submit" id="submit" >提交</button></form>


只有一个用户名和密码以及一个提交按钮的的简单表单 注意我这里的form的id是formadd  看起来非常简陋~

 

 

 

然后再添加我们的表单处理的jquery

如果你在settings里边没有注释掉

 

'django.middleware.csrf.CsrfViewMiddleware',


你的jquery里边需要添加上这句,详情参照自强学堂django ajax csrf

 

 

$.ajaxSetup({data: {csrfmiddlewaretoken: '{{ csrf_token }}' },});

然后整个jquery脚本,这里写的比较就简单主要突出与django的通信

<script src={% static 'jquery/jquery.min.js' %}></script><script>$(document).ready(function(){$.ajaxSetup({data: {csrfmiddlewaretoken: '{{ csrf_token }}' },});$('#formadd').submit(function(){var name = $("#id_name").val();    //获得form中用户输入的name 注意这里的id_name 与你html中的id一致var password = $("#id_password").val();    //同上$.ajax({type:"POST",data: {name:name, password:password},url: "{% url 'blog:comments_upload' %}", //后台处理函数的url 这里用的是static url 需要与urls.py中的name一致cache: false,dataType: "html",success: function(result, statues, xml){alert(result);      //成功时弹出view传回来的结果},error: function(){alert("false");}});return false;});});</script>

接下来写我们后端的view.py 中的后端处理函数

def comments_upload(request):if request.method == 'POST':print "it's a test"     #用于测试print request.POST['name']        #测试是否能够接收到前端发来的name字段print request.POST['password']     #用途同上return HttpResponse("表单测试成功")   #最后返会给前端的数据,如果能在前端弹出框中显示我们就成功了else:return HttpResponse("<h1>test</h1>")

由于有中文所以views.py 开头加上

 

 

 

 

#coding=utf8

最后urls.py中加一条,(注意这是我的app中的urls.py)

 

 

url(r'^comments_upload/$', comments_upload, name='comments_upload'),

然后fire your server

 

测试

 

Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
it's a test
test
testpassword

后端console成功打印出我们的name和password字段

 

其实我们在这个views.py 中可以做许多事情,比如把这个name和password字段进行验证了,或者存入数据库,然后返回一段真正的html代码,局部替换前端的页面,达到异步传输的效果

 


http://www.ngui.cc/el/5557150.html

相关文章

在Python中调用shell命令及 获取python命令中的参数

Python 调用shell脚本&#xff0c; Python 自定义函数&#xff0c; Python 调用shell命令其中命令参数为python脚本中的变量 举例&#xff1a; shell的脚本&#xff1a; t.sh内容&#xff1a; echo "this is a test shell with arguments" echo "arg1 $1; arg2…

Django配置Session的3种存储方法

在Django中Session是通过一个中间件管理的。如果要在应用程序中使用Session&#xff0c;需要在settings.py中的MIDDLEWARE_CLASSES变量中加入’django.contrib.sessions.middleware.SessionMiddleware’。 Django中的Session有3种存储方式&#xff1a;放在数据库、缓存或者文件…

Django session 详解

Django中的session是一个高级工具&#xff0c;它可以让用户存储个人信息以便在下次访问网站中使用这些信息。session的基础还是cookie&#xff0c;但是它提供了一些更加高级的功能。请看下面的一个例子&#xff1a; 使用session&#xff1a; 这个例子中实现了一个简单的计数功…

python的os模块fork、wait、system、exec、popen、exit函数讲解

虽然进程可在单独的内存空间中执行&#xff0c;但除非这些Python进程在单独的处理器上执行&#xff0c;否则&#xff0c;实际并不是“同时”运行的。是由操作系统把处理器的时间片分配给一个进程&#xff0c;用完 时间片 后就需退出处理器等待另一个时间片的到来。 另一种方式…

Python:OS 模块 -- 进程管理

原文链接&#xff1a;http://www.cnblogs.com/now-fighting/p/3534847.html 建议查看原作者原文。 这里我们介绍os模块中的进程管理相关的操作。 os模块提供给了我们访问操作系统功能的接口&#xff0c;我们可以通过os模块提供给我们的进程管理接口&#xff0c;编写多进程程…

Ubuntu下怎么安装openjdk

方法/步骤 1 ubuntu使用的是openjdk&#xff0c;我门要首先找到适合的jdk版本。 2 在终端输入命令&#xff1a;apt-cache search openjdk 3 从搜索的列表里找到我们需要安装的jdk版本 4 执行安装命令&#xff1a;sudo apt-get install openjdk-7-jdk 5 注意openjdk-7-jdk就是我…

linux shell 解读 “永久环境变量” “临时环境变量”和普通变量

一. 永久环境变量&#xff08;实际上属于文件&#xff0c; 而不属于shell, 每打开一个shell, 都会加载/导入到shell中&#xff0c; 形成当前shell的临时环境变量&#xff09; 先说说"永久环境变量"&#xff0c; 其实&#xff0c; 我也知道&#xff0c; 没有什么东西是…

SQL左连接、右连接、笛卡尔积的表现形式

表A记录如下&#xff1a; aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bName 1 2006032401 2 2006032402 3 2006032…

Shell脚本中执行sql语句,操作mysql数据库

对于自动化运维&#xff0c;诸如备份恢复之类的&#xff0c;DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql数据库中&#xff0c;shell脚本下调用sql语句的几种方法&#xff0c;供大家参考。对于脚本输出的结果美化&#xff0c;需要进一步完善和调整。以下…

django get_object_or_404

django get_object_or_404 是django shortcuts模块里面一个比较简便的方法&#xff0c;特别是用django get来操作数据库的时候&#xff0c;可以帮 我们少写一些代码&#xff0c;加快开发速度。 get_object_or_404的介绍&#xff1a; 我们原来调用django 的get方法&#xff0c;…