Django之modelform简介
在django中内置了form类和model类,当页面中的form值和model字段值完全一样时,此时可以通过model生成一个完全一样的form,Django中的modelForm就因此而生。
目标:
定义Author表,通过modelform提交数据到数据库
创建工程及app
python django-admin.py startproject formstudy
cd formstudy
python manager.py startapp study
编辑models.py
from __future__ import unicode_literals from django.db import models # Create your models here. TITLE_CHOICES = (
('MR','Mr.'),
('MRS','Mrs.'),
('MS','Ms.'),
) class Author(models.Model):
name = models.CharField(max_length=100)
title = models.CharField(max_length=3,choices=TITLE_CHOICES)
birth_date = models.DateField(blank=True,null=True) def __unicode__(self):
return self.name class Book(models.Model):
name = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
在app目录下新建forms.py
修改views.py
修改urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^testModelform/$', views.testModelForm, name='testModelForm'),
]
在templates目录下创建testModelForm.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mode测试</title>
</head>
<body>
<form method="post" action=".">{% csrf_token %}
<table>
<tr>
<td>
<label for="id_name">作者名:</label>
</td>
<td>
{{ form_info.name }}
</td>
<td>
{{ form_info.name.errors }}
</td>
</tr>
<tr>
<td>
<label for="id_title">标题:</label>
</td>
<td>
{{ form_info.title }}
</td>
<td>
{{ form_info.title.errors }}
</td>
</tr>
<tr>
<td>
<label for="id_title">出生日期:</label>
</td>
<td>
{{ form_info.birth_date }}
</td>
<td>
{{ form_info.birth_date.errors }}
</td>
</tr>
<tr>
<td>
<input type="submit" value="注册">
</td>
<td>
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
修改admin.py
from django.contrib import admin
import models
# Register your models here.
class AuthorAdmin(admin.ModelAdmin):
list_display = ['name','title','birth_date'] admin.site.register(models.Author)
修改settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'study',
]
启动服务
python manage.py runserver 127.0.0.1:8001
效果图
此时可以通过表单提交数据到数据库了
Django之modelform简介的更多相关文章
- Django中ModelForm应用
Django中ModelForm的应用 在传统中Form提交的POST的数据在服务器端获取时将不得不一一获取并验证数据的可靠性,但是使用django提供的Form时可简化该过程并提供相应的验证,同时D ...
- Django的ModelForm
基于django.forms.ModelForm:与模型类绑定的Form 先定义一个ModelForm类,继承ModelForm类 from django.forms import ModelForm ...
- Django中Model-Form验证
Django中Model-Form验证 class UserType(models.Model): caption=models.CharField(max_length=32) class User ...
- Python学习---django之admin简介
Django之admin简介 参考文献:http://www.admin10000.com/document/2220.html Djaogo为什么url可以匹配url.py里面的路径呢? 我们打 ...
- django中ModelForm save方法 以及快速生成空表单或包含数据的表单 包含错误信息
django中ModelForm学习系列一~save方法 Model代码 from django.db import models # Create your models here. class P ...
- Django 四——ModelForm用法
内容概要: 1.新增数据库表中数据 2.更新数据库表中数据 Django的ModelForm Django中内置了Form和Model两个类,有时候页面的表单form类与Model类是一一对应,因此分 ...
- Django Rest Framework 简介及 初步使用
使用Django Rest Framework之前我们要先知道,它是什么,能干什么用? Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API 为什么要使用Res ...
- django工作原理简介
django工作原理简介 先简单的介绍一下django的工作原理,其中还会涉及到Middleware(中间件,包括request, view, exception, response),URLConf ...
- Django(十四)课程机构列表页数据展示,Django的modelform,关于urls的重新分发
关于urls的重新分发: 如果所有url都配置在根路径的urls.py里,会特别多,而且也不易于修改,Django框架里支持urls的重新分发: 1.在根路径的urls配置上: PS:namespac ...
随机推荐
- Term Weighting
对文本分词后,接下来需要对分词后的每个term计算一个权重,重要的term应该给与更高的权重.举例来说,“什么产品对减肥帮助最大?”的term weighting结果可能是: “什么 0.1,产品 0 ...
- 分布式处理与大数据平台(RabbitMQ&Celery&Hadoop&Spark&Storm&Elasticsearch)
热门的消息队列中间件RabbitMQ,分布式任务处理平台Celery,大数据分布式处理的三大重量级武器:Hadoop.Spark.Storm,以及新一代的数据采集和分析引擎Elasticsearch. ...
- Node.js http服务器搭建和发送http的get、post请求
1.Node.js 搭建http服务器 1.1创建server.js var http = require('http'); var querystring = require('querystrin ...
- elasticsearch(一):安装与配置
一.elastic search的安装与配置 1.安装Java 并且配置JAVA_HOME环境变量. 2.下载elasticsearch,下载地址:https://www.elastic.co/dow ...
- Druid连接池(三)
十二.Druid缓存 连接Oracle数据库,打开PSCache,在其他的数据库连接池都会存在内存占用过多的问题,Druid是唯一解决这个问题的连接池. Oracle数据库下PreparedState ...
- [Hive]使用 Antlr 开发领域语言
Antlr 简介 ANTLR 语言识别的一个工具 (ANother Tool for Language Recognition ) 是一种语言工具,它提供了一个框架,可以通过包含 Java, C++, ...
- 远程桌面控制项目开发(Spring+Netty+Swing)
[目录] 1.前言 2.初现端倪 3.款款深入 4.责任细分 5.功能层级图 6.项目结构 7.关键类设计 8.一些设计想法 9.待优化 10.一点心得 11.效果演示 12.讨论 13.GitHub ...
- HTML5的新结构标签
在之前的HTML页面中,大家基本上都是用了Div+CSS的布局方式.而搜索引擎去抓取页面的内容的时候,它只能猜测你的某个Div内的内容是文章内容容器,或者是导航模块的容器,或者是作者介绍的容器等等.也 ...
- jQuery通过input标签的name获取值
jquery根据name属性查找 $("div[id]") 选择所有含有id属性的div元素 $("input[name='keleyicom']") 选择所有 ...
- 【转载&&干货】Noip应试技巧
NOIP应试技巧 如何看待别人的经验? 我想大家都有台上的学长滔滔不绝,但是自己在台下漠不关心,或是老师考试前的叮嘱说完一会儿功夫就忘记了的经历吧.所以,有可能我接下来的所说的话,一到考场上就全部忘记 ...