循序渐进Python3(十三) --1-- django之form表单
在上一次的代码上做出进一步修改,使之能在页面上显示报错信息。
from django.shortcuts import render, HttpResponse
from django import forms
import json
# Create your views here.
class InputForm(forms.Form):
# 下面使用的变量名必须和html中input标签的name值相同
username = forms.CharField(required=True)
password = forms.CharField(required=True)
def login(request):
if request.method == 'POST':
result = {'status':False, 'message':None}
obj = InputForm(request.POST)
ret = obj.is_valid()
# print(ret,obj.data)
if ret:
print(obj.clean())
result['status'] = True
else:
# print(obj.errors)
error_str = obj.errors.as_json()
result['message'] = json.loads(error_str)
return HttpResponse(json.dumps(result))
return render(request, 'login.html')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.error-msg{
color:red;
}
</style>
</head>
<body>
<div>
<div>
<input type="text" name="username" />
</div>
<div>
<input type="password" name="password" />
</div>
<input type="button" value="提交" onclick="DoSubmit();"/>
</div>
<script src="/static/jquery-2.1.4.min.js"></script>
<script>
function DoSubmit() {
var input_dic = {};
$('input').each(function () {
var v = $(this).val();
var n = $(this).attr('name');
input_dic[n] = v;
});
console.log(input_dic);
$.ajax({
url:'/login/',
type:'POST',
data:input_dic,
dataType: 'json',
success: function (rdata) {
if(rdata.status){
location.href = '/index/';
}else{
$.each(rdata.message, function (k,v) {
console.log(k,v[0].message);
var tag = document.createElement('span');
tag.className = 'error-msg';
tag.innerText = v[0].message;
$('input[name="' + k + '"]').after(tag);
})
}
},
error: function () {
}
})
}
</script>
</body>
</html>
循序渐进Python3(十三) --1-- django之form表单的更多相关文章
- Django的form表单
html的form表单 django中,前端如果要提交一些数据到views里面去,需要用到 html里面的form表单. 例如: # form2/urls.py from django.contrib ...
- Django 11 form表单(状态保持session、form表单及注册实现)
Django 11 form表单(状态保持session.form表单及注册实现) 一.状态保持 session 状态保持 #1.http协议是无状态的:每次请求都是一次新的请求,不会记得之前通信的状 ...
- 转载:Django之form表单
转载: 一.使用form类创建一个表单 先定义好一个RegForm类: forms.py from django import forms # 导入forms类 class NameForm(form ...
- Django--分页器(paginator)、Django的用户认证、Django的FORM表单
分页器(paginator) >>> from django.core.paginator import Paginator >>> objects = ['joh ...
- 循序渐进Python3(十三) --0-- django之form表单
django为我们提供了form表单验证功能,下面来学习一下: 武sir博客:http://www.cnblogs.com/wupeiqi/articles/5246483.html 创建了djan ...
- django之form表单验证
django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf- -*- import re from django ...
- django中form表单的提交:
一,关于表单: 表单在百度百科的解释: 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域 ...
- Day19 Django之Form表单验证、CSRF、Cookie、Session和Model操作
一.Form表单验证 用于做用户提交数据的验证1.自定义规则 a.自定义规则(类,字段名==html中的name值)b.数据提交-规则进行匹配代码如下: """day19 ...
- Django的form表单之文件上传
在生成input标签的时候可以指定input标签的类型为file类型 <!DOCTYPE html> <html lang="en"> <head&g ...
- 【django之form表单】
一.构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的模板: <form action="/your-name/" method=&qu ...
随机推荐
- 【scala】占位符
Scala语言为了让函数字面量更加精简,还可以使用下划线作为占位符,用来表示一个或多个参数. 我们用来表示的参数必须满足只在函数字面量中出现一次. 我们用例子来看占位符的用法 scala> va ...
- MongoDB 高可用集群架构简介
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. 转载自严澜的博文——<如何搭建高效的 ...
- LeetCode OJ:Palindrome Linked List(回文链表判断)
Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time ...
- Android中将歌曲导入到SD卡和模拟器
打开桌面的eclipse.exe的主程序,直接来到他的主页面上来. 在工具上边找到window----show view ----Other的按钮 打开之后,我们点击Android展开他. 展开之后, ...
- java String 转 Long 两种方法区别
Long.ValueOf("String")返回Long包装类型 包装类型: Byte,Integer,Short,Long,Boolean,Character,Float,Dou ...
- 【MFC】MFC中窗口重绘
MFC中窗口重绘 摘自:http://blog.csdn.net/shuilan0066/article/details/5859057 在刷新窗口时经常要调用重绘函数 MFC提供了三个函数用于窗口重 ...
- 【MFC】MoveWindow();函数使用详解
摘自:http://blog.csdn.net/yjkwf/article/details/5281207 CWnd::MoveWindow 详解 2010-02-02 16:08 3432人阅读 评 ...
- [python] 获得所有的最长公共子序列
两句闲话 得到两个序列的最长公共子序列(LCS)是个经典问题,使用动态规划,实现起来并不难. 一般来说,我们只是输出一个LCS.但是,老师布置的作业是输出所有的LCS. 解法 按照一般的方法,我们首先 ...
- Jolt Awards: The Best Books
Jolt大奖素有“软件业界的奥斯卡”之美誉,共设通用类图书.技术类图书.语言和开发环境.框架库和组件.开发者网站等十余个分类,每个分类设有一个“震撼奖”(Jolt Award)和三个“生产力奖”(Pr ...
- throw、try 和 catch
try 语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块. JavaScript 语句 try 和 catch 是成对出现的. ...