Django学习系列之Form表单和ajax

ajax

通过ajax发送一条数据

定义urls.py

from django.conf.urls import url
from django.contrib import admin
from cmdb import views
urlpatterns = [
    url(r‘^ajax_demo/‘, views.ajax_demo),
]

定义views.py

from django.shortcuts import render
from django.shortcuts import HttpResponse
# Create your views here

def ajax_demo(request):
    if request.method == ‘POST‘:
        ret = {‘status‘:False,‘message‘:‘‘}   #定义存储状态信息和错误信息的字典
        user = request.POST.get(‘user‘,None)  #获取ajax发送过来的user
        pwd = request.POST.get(‘pwd‘,None)    #获取ajax发送过来的pwd
        if user == ‘111‘ and pwd == ‘222‘:    #判断ajax发送过来的数据
            ret[‘status‘] =True               #如果判断正确的话就把状态置为True
            return HttpResponse(json.dumps(ret)) #然后把 {‘status‘:True,‘message‘:‘‘} 返回给回调函数,回调函数里的data就等于这个字典
        else:
             ret[‘message‘] = "用户名或密码错误"
             return HttpResponse(json.dumps(ret)) #把错误信息的字典返回给回调函数,回调函数里的data就等于这个字典
    return render(request,‘ajax_demo.html‘)

ajax_demp.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <p>用户名:<input type="text" id="user"/></p>
    </div>
    <div>
        <p>密码:  <input type="password" id="pwd"/></p>
    </div>
    <input type="button" value="提交" onclick="SubmitForm()"/>
    <script src="/static/jquery-1.12.4.js"></script>

    <script>
        #当提交按钮被点击时,触发submitform函数
        function SubmitForm() {
           #发送ajax请求
            $.ajax({
               url:‘/ajax_demo/‘,    #提交表单内容到/ajax_demo函数
                type:‘POST‘,         #以post的方式提交
                data:{‘user‘:$(‘#user‘).val(),‘pwd‘:$(‘#pwd‘).val()},  #获取用户在input标签的输入内容
                dataType:‘json‘,
                success:function (data) {      #回调函数,当后台(指views中的ajax_demo函数)return HttpResponse之后.该函数自动执行
                    if(data.status){           #data就是后台返回的数据,如果用户输入正确后台就返回status为True的字典,那data就等于这个字典
                        location.href = "http://www.baidu.com"; #跳转到百度
                    }else{
                        alert(‘用户名或密码错误‘)                 #弹出报错框
                    }
                }
            })

处理流程

时间: 2024-10-22 06:56:21

Django学习系列之Form表单和ajax的相关文章

Python+Django+SAE系列教程14-----使表单更安全

还记得我们上一章提到过的添加页面吗? 添加完以后我们注意一下地址栏: 表单里的数据赤裸裸的显示在了地址栏中,这时候如果我们修改一下内容 刷新,这样数据库里面就会又加入了一条数据,也就是说用户如果知道表单的结果页的连接,就可以不通过我们的表单,任意添加数据了,这样当然不是我们想要的结果. 这样的结果是因为我们在表单中使用了get的方式来传递数据,这时我们应该想到采用post的方法,post比get更加安全,我们来修改一下模板页面,注意这里: 下面是表单模板Classroom_Add.html的代码

jquery序列化form表单使用ajax提交后处理返回的json数据

这篇文章主要介绍了jquery序列化form表单,使用ajax提交后处理返回的json数据的示例,需要的朋友可以参考下 1.返回json字符串: ** 将一个字符串输出到浏览器 */    protected void writeJson(String json) {        PrintWriter pw = null;        try {            servletResponse.setContentType("text/plain;charset=UTF-8"

jQuery实现form表单基于ajax无刷新提交方法详解

本文实例讲述了jQuery实现form表单基于ajax无刷新提交方法.分享给大家供大家参考,具体如下: 首先,新建Login.html页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.o

Django第3章: Form表单

1. 常规表单 2. django中的form表单 form表单使用介绍 页面与web服务器交互数据最重要的方式; input标签类型: text, password, file; 默认方式method=get,所有信息都会在url后面显示,表单提交指定为method=post; 注意,若需要将数据发送到后端,input标签必须指定name属性,否则不会发送; 传输的数据以键值对形式保存在request.POST中, 键的值即为name属性值; 文件上传: 由于上传文件时在客户端与服务端传输的是

PHP全栈开发(四): HTML 学习(3. form 表单)

form 表单标签 它表的是一个区域,而非是一个具体的某个元素,它也是作为一个容器的存在. 表单域主要是允许用户在表单域中输入内容,比如文本框,下拉列表,单选框,复选框,等等. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <h1>用户登录</h1> <form name="input&

Django框架form表单配合ajax注册

总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 下面是写的登录页面的实例 1:views视图中的代码 # 注册页面 def register(request): if request.method == 'POST': # 将提交过来的数据放的form表单中进行校验 form_obj = forms.Register(request.POST) # 判断校验是否真确 print(form_obj.is_valid()) ret

Django框架 之 Form表单和Ajax上传文件

浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html <h3>form表单上传文件</h3> <form action="/upload_file/" method="post" enctype="multipart/form-data"> <p><input type="file" name="upload_fi

清理浏览器网站缓存的几种方法(meta,form表单,ajax)

1.meta方法   HTML header中加入 <meta http-equiv="pragma" content="no-cache"> 说明:禁止浏览器从本地计算机的缓存中访问页面内容.上述设定,访问者将无法脱机浏览. <meta http-equiv="Cache-Control" content="no-cache,must-revalidate"> 说明:Cache-Control指定请求

form表单和ajax上传文件

使用form表单上传文件 知识点/注意点 from表单里 要加上这行 enctype="multipart/form-data" 上传文件 上传的是二进制数据 用request.FILES 拿到的也是一个字典 前端代码 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Titl