标签(空格分隔): 未分类


很多地方要用到ajax,还是要做一下的

我想了一下思路:
比如说,我们就只做一个判断输入用户名的时候,不用刷新,在前端提示该用户是不是在数据库里的功能;
实现方法肯定是,我们写进输入框,然后焦点离开输入框之后,用ajax把输入框的内容传到后台,然后验证之后返回一个状态标识(用户名是否存在数据库的标识)

然后我们就可以写出
首先简单写一个表单做示例

<form action="" method="post">{% csrf_token %}用户名: <input name="username" id="username" /><br><p id="hint"></p><br><input type="submit" value="提交">
</form>

接着是js函数

<script type="text/javascript"
src='{% static 'scripts/jquery-2.2.0.js'%}'>
</script><script>$(document).ready(function(){$("#username").blur(function(){var uname = $("#username").val();$.get("/find",{'username':uname}, function(ret){$('#hint').html(ret);})});});</script>

应该不难理解吧
- blur函数是jQuery的焦点离开的触发函数;
- ‘/find’是我们在Django后台定义的路由,我们在urls.py里如下定义:

from User.views import find
urlpatterns = [# ...其他urlurl(r'^find$', find, name='find'),
]    
  • 然后后台实现find函数如下(因为我们这里是通过url传参,函数的参数表并不用定义,访问到这个函数的url格式是‘/find?username=…’):
def find(request):user_name = request.GET['username']try:user = User.objects.get(user_name = user_name)return HttpResponse("exist")except:return HttpResponse("not exist")

上述几步应该就可以实现功能了


以下的是讲如何将上述功能整合到一个公共模块,然后子页面调用,大家想看就看。

思路:

我们可以把js函数写到check.html(公共模板)里,但是如果这样的话,因为我们的函数是通过前端控件的id来处理动作,那么,我们在继承的时候,所有前端控件的id都必须相同,我们就假设所有用到该功能的输入框为id = ‘username’;

我们写一个check.html放到Django的公共模板(公共的templates文件夹)里:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8">{% block script %}{% load staticfiles %}<script type="text/javascript" src='{% static 'scripts/jquery-2.2.0.js'%}'></script><script>$(document).ready(function(){$("#username").blur(function(){var uname = $("#username").val();$.get("/find",{'username':uname}, function(ret){$('#hint').html(ret);})});});</script>{% endblock%}</head>
<body>{% block body %} body {% endblock %}
</body>
</html>

然后我们的表单的html就是

<!DOCTYPE html>
{% extends "check.html" %}
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title></head>
<body>
{% block body %}<h1>This is test!</h1><form action="" method="post">{% csrf_token %}用户名: <input name="username" id="username" /><br><p id="hint"></p><br><input type="submit" value="提交"></form>{% endblock %}
</body>
</html>

是不是很详细~~

Django + ajax相关推荐

  1. Django Ajax总结

    Django Ajax总结 Ajax-Jquery ajax 配合 json 使用BookStrap进行前端框架开发 font-awesome 图标插件 Ajax全套 发送请求 1.使用JQuery调 ...

  2. ajax防止csrf,django ajax提交避免csrf_toke错误

    将以下代码写入到csrf_token_new.js,然后在html页面中加入该js,即可避免出现csrt错误 /*====================django ajax ======*/jQu ...

  3. django ajax请求 csrf验证失败

    如何解决django ajax请求 csrf验证失败的问题: 原文链接:http://stackoverflow.com/questions/5100539/django-csrf-check-fai ...

  4. django ajax 更新表格_Django(反向解析,路由分发、名称空间、视图层、虚拟环境、Django版本、json,CBV)...

    https://www.zhihu.com/video/1249117508688711680 每日测验 """ 今日考题 1.列举你知道的orm数据的增删改查方法 2. ...

  5. Django - AJAX

    一. JSON 什么是json? json指的是JavaScript对象表示法(JavaScript Object Notation) json是轻量级的文本数据交换格式 独立于语言, 支持不同的编程 ...

  6. Django Ajax发送请求使用方法

    首先需要引入Jquery这个库 其次: 需要引入csrf_token 原因是因为django 表单认证需要csrf认证 最后,就是正常执行ajax发送请求 示例代码如下: <script src ...

  7. django ajax获取数据类型,Django:使用Ajax获取模板中的数据库对象值

    您可以使用AJAX回打电话给你的Django代码,并返回你的车的名称: template.html $(document).ready(function() { $(document).on(&quo ...

  8. Django - Ajax - 参数

    一.Jquery实现Ajax url   type   data   success   error  complete  statusCode {% load staticfiles %}<! ...

  9. django ajax 查询,Django分页和Ajax查询

    在Django中,实现分页以在多个页面上显示查询项目是非常简单的.使用Ajax仅更新实际发生更改的页面位,而不是每次加载整个页面也是非常直接的.但是,当我们将两者结合在一起时,我发现它有点问题.Dja ...

  10. python django ajax 逻辑推理_python django初识ajax

    什么是json json是轻量级文本数据交互格式 json独立语言 符合的json对象 ["one", "two", "three"] {& ...

最新文章

  1. Android注解使用之Dagger2实现项目依赖关系解耦
  2. 广域网一般采用什么网络拓扑结构?—Vecloud
  3. 快速排序与合并排序的分而治之
  4. vue2.0 prop的使用
  5. Facebook 如何管理150亿张照片
  6. ztree改变节点颜色
  7. L1-056 猜数字 (20 分)
  8. 超过12000个零件,钢琴就是一部复杂的机器
  9. 数据大牛都在啃的10本书
  10. python中直方图bins是什么意思_Python 中下划线的 5 种含义都是什么?
  11. 《美团数据平台及数仓建设实践》(209页).PDF
  12. 变量、属性、函数、方法总结
  13. Vue源码:mustache模板引擎学习
  14. PHP URL参数获取方式的四种例子
  15. linux match函数,关于VLOOUP函数与index match函数
  16. 前端的c语言面试题,腾讯WEB前端笔试题和面试题答案
  17. 常用的20个js简洁代码
  18. 训练赛 Discrete Logarithm Problem
  19. Python模拟鼠标按键(长按)
  20. 什么叫资讯,资讯是什么?

热门文章

  1. 源码 补码 反码(转)
  2. 新冠病毒是人造?科学解释为何阴谋论错得离谱
  3. Python淘宝秒杀
  4. 女儿被继母杀害因不见尸骨疑犯被放 母亲讨公道
  5. 世界上最好的编程语言(没有绝对)
  6. 迅捷pdf实现多页插入
  7. transform: translate(-50%,-50%)导致的像素(前端页面字体模糊)模糊问题解决办法
  8. 计算机专业英语选词填空,英语专业四级考试_大学英语四级选词填空练习(七)_沪江英语...
  9. Sql中的格式转换功能
  10. 番外1索尔港的一分钟——《地与光》