# Django的Form主要具有一下几大功能:
#
#     生成HTML标签
#     验证用户数据(显示错误信息)
#     HTML Form提交保留上次提交数据
#     初始化页面显示内容# forms组件生成HTML标签格式
# class 表名Form(Form):
#     字段名 = fields.字段类型(
#         初始值,
#         widgets=widgets.插件(attrs={html属性标签 字典格式})
#     )

1.urls.py

url(r'^student', student),

2.models.py

from django.db import models# Create your models here.
class Class(models.Model):title = models.CharField(max_length=32)teachers = models.ManyToManyField("Teacher")def __str__(self):return self.titleclass Teacher(models.Model):name = models.CharField(max_length=32)def __str__(self):return self.nameclass Student(models.Model):username = models.CharField(max_length=16,unique=True)age = models.IntegerField()gender = models.BooleanField()classes = models.ForeignKey("Class")def __str__(self):return self.username

2.form.py

from .models import Student, Class, Teacher
# Create your froms here.
from django.forms import Form
from django.forms import widgets
from django.forms import fieldsclass StudentForm(Form):username = fields.CharField()(     widget=widgets.TextInput(attrs={"style":"color:red;"},)   )age = fields.IntegerField()gender = fields.ChoiceField(choices=((1, "男"), (0, "女"),),initial=1,widget=widgets.Select)classes = fields.IntegerField(initial=1,widget=widgets.Select())    # 绑定动态数据def __init__(self, *args, **kwargs):super(StudentForm, self).__init__(*args, **kwargs)self.fields["classes"].widget.choices = Class.objects.all().values_list("id", "title")

4.views.py

from .forms import StudentForm
from .models import Student,Class,Teacher
def student(request):if request.method == "GET":obj = StudentForm()return render(request, "t1/student.html", locals())elif request.method == "POST":obj = StudentForm(request.POST)if obj.is_valid():try:val = obj.clean()print(val)Student.objects.create(username=val["username"], age=val["age"], gender=val["gender"],classes_id=val["classes"])return HttpResponse(val["username"] + "添加完成")except Exception as e:return HttpResponse("数据错误,请重新输入")else:print(obj.clean())return HttpResponse("ERROR")else:return HttpResponse("error")

5.student.html

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="/student/" method="POST" enctype="multipart/form-data">{% csrf_token %}<p>用户名:{{ obj.username }} {{ obj.username.errors }}</p><p>年&nbsp;&nbsp;龄:{{ obj.age }}{{ obj.age.errors }}</p><p>性&nbsp;&nbsp;别:{{ obj.gender }}</p><p>班&nbsp;&nbsp;级:{{ obj.classes }}</p><input type="submit"value="添加用户"/>
</form>
</body>
</html>

转载于:https://www.cnblogs.com/icemonkey/p/10541986.html

Django Forms实例相关推荐

  1. django forms 错误处理

    源码文件,site-packages/django/forms/forms.py 一个form实例. Form.errors 返回一个ErrorDict实例,包含当前表单所有的错误,可以在is_val ...

  2. Django forms组件

    校验字段 模板文件 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  3. django.forms生成HTML,第21天,Django之Form组件

    ModelForm 一.Form组件初识 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 mo ...

  4. django forms表单

    目录: forms表单介绍 forms常用字段与插件 forms所有内置字段 正则校验字段 钩子函数自定义校验 FORMS介绍 在许多应用场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长 ...

  5. Nginx + uWSGI + Python + Django部署实例

    Nginx: Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的 ...

  6. markdownpad2 html渲染组件出错_Day68 Django forms组件

    目录 forms组件 forms组件类书写 forms组件如何校验数据 forms组件如何渲染标签 forms组件展示错误信息 forms组件钩子函数(HOOK) forms组件常见参数 forms组 ...

  7. python django实例_python django 模板实例

    操作系统MAC OS/LINUX windows 安装python3 版本3自带virtualenv 安装virtualenv: pip install virtualenv 创建虚拟环境 virtu ...

  8. Django网站实例效果

    Django是一种开源的大而且全的Web应用框架,是由python语言来编写的,优点十分明显: 功能完善.要素齐全:自带大量常用工具和框架(比如分页,auth,权限管理), 适合快速开发企业级网站. ...

  9. 前端vue+后端Django通信实例,传递json数据

    将前端 Vue 项目和后端 Django 框架联系起来,让他们之间可以通过AXIOS进行通信并且传输数据,在 前端Vue项目中写一个请求函数,这个函数会请求/hello 接口, Vue 项目收到后端返 ...

最新文章

  1. MPB:湖南师大尹佳组-​乳酸菌对酸和胆碱盐的耐受能力
  2. mongoose常用方法(查询篇)
  3. MFC隐藏和显示一个控件的方法
  4. dataBinding和retrofit的使用
  5. 【C语言】数据结构C语言版 实验3 带头结点的单链表
  6. Mybatis plus 开启日志
  7. python 中csv怎么用_python中不同的CSV功能和使用
  8. VC++ 6.0的一些使用技巧---IDE的使用
  9. 威纶通宏指令是c语言吗,威纶触摸屏宏指令编程,字符串相关函数介绍与使用...
  10. 微信台配置那服务器,微信配置
  11. Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库
  12. 最新苹果cms影视源码双端支持在线切换3套主题开心版带详细安装教程
  13. 对一段Oracle GoldenGate (OGG) 传输进程日志(.rpt文件)的解释
  14. 信息学奥赛一本通 铲雪车
  15. Flink 灵魂两百问,这谁顶得住?
  16. JavaScript 每日一题 #11
  17. 【题目解析】2019年第十六届中国研究生数学建模竞赛B题 --天文导航中的星图识别+
  18. upload单独上传和统一上传
  19. 【论文阅读】注意力机制与二维 TSP 问题
  20. 移动端WebApp开发 你需要从这几点学起

热门文章

  1. asp.net session 介绍一三种Session存储方式
  2. go语言buffio与继承
  3. 【CyberSecurityLearning 11】OSI与TCP/IP协议簇以及Packet Tracer模拟器
  4. git checkout 对工作目录的影响 —— Git 学习笔记 21
  5. 【那么普通却那么自信,一分钟学Source Insight】Source Insight 4 tab设置为4个空格
  6. 一文看懂Python(七)-----断言
  7. 嵌入式面试知识点总结 -- ARM篇
  8. DM8168 DVRRDK软件框架研究
  9. linux搜狗输入法配置,liunx----配置搜狗输入法
  10. 加密货币与智能合约的隐私 (一): 区块链上的隐私