小编给大家分享一下Django使用表格的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
我们可以通过Django提供的形式类来自用生成上面的表单,不再需要手动在HTML中编写。
首先,在你当前应用内新建一个forms.py文件(这个套路是Django的惯用手法,就像views.py,模型。py等等),然后输入下面的内容:
得到django import formsclass NameForm (forms.Form): ,,,your_name =, forms.CharField(标签=& # 39;Your 名字# 39;,,max_length=100)
要点:
提前导入形式模块
所有的表单类都要继承forms.Form类
每个表单字段都有自己的字段类型比如CharField,它们分别对应一种HTML语言中的& lt; form>元素中的表单元素。这一点和Django模型系统的设计非常相似。
例子中的标签用于设置说明标签
max_length限制最大长度为100。它同时起到两个作用,一是在浏览器页面限制用户输入不可超过100个字符,二是在后端服务器验证用户输入的长度不可超过100 .
Django中,与数据库相关的模块是模型模块,它提供了一种简单易操作的API方式与数据库交互,它是通过ORM映射的方式来操作数据库,一个类对应数据库一张表,一个类属性,对应该表的一个字段,一个实例化的类对象就是一个表中的一行数据信息。在开发的阶段,工程师只需要python语言本身进行代码设计,而不用太过于分散注意力去操作SQL原生操作语句,这样的方法既有它的优点,同样也有不足之处。
<>强优点:强>
1,实现了代码与数据库的解耦合
2,开发者不需要操作太多的原生SQL,可以提高开发效率
3,防止SQL注入,通过对象操作的方式,默认就是防止SQL注入
<强>缺点:强>
1,牺牲性能,对象转换到SQL会存在一定的消耗
2,当需要操作较复杂的语句时,用ORM对象操作的方式很难实现
, ORM与数据库的映射关系如下:
表名- - - - - - - - - -》类名
字段- - - - - - - - - -》属性
表记录——》类实例化对象
, ORM的两大主要功能:
操作表:
——创建表
——修改表
——删除表
操作表数据行:增,删,改,查
Django自带的数据库为sqlite3,如果需要使用其他数据库,需要其他的准备工作,并且,使用其他数据库,需要自己提前建好数据库,然后通过Django去连接,Django并不会创建数据库。
完整过程:
<强>一、编写模型类强>
在Django项目的应用应用下的models.py文件中编写类,每一个类就是一个最终都会被映射为一个数据表。在写类之前有个准备工作,在设置。py文件中的“INSTALLED_APPS”要先加入自己的应用应用,告诉Django有这个应用。如图:
表分为单表,一对一表,一对多表,多对多表,就是表一般不会独立存在,总会与其他表存在联系。我创建了三个表,一个表为发布(出版社),一个表为作者(作者),还有一个表书(书籍),其中表书籍与表出版社是外键关系,与作者是多对多的关系。
,class 发布(models.Model): ,2,,,,name =, models.CharField (max_length=64) ,3,,,,city =, models.CharField (max_length=63, null=True) ,4,,,,def __str__(自我): ,5,,,,,,,,return self.name ,6 ,7 ,8 class 作者(models.Model): ,9日,,,,name =, models.CharField (max_length=30) 10个,,,,,sex =, models.CharField (max_length=20) 11,,,,,def __str__(自我): 12,,,,,,,,,return self.name 13, 14,class 书(models.Model): 15,,,,,title =, models.CharField (max_length=64) 16,,,,,price =, models.IntegerField () 17日,,,,,color =, models.CharField (max_length=64) 18岁,,,,,page_num =, models.IntegerField (null=True) 19日,,,,,publisher =, models.ForeignKey (“Publish" on_delete=models.CASCADE, null=True),, #一对多的关系.2.0django中,当有主外键和其他对应关系时,需要设置。 20,,,,,author =, models.ManyToManyField (“Author") 21日,,,,,def __str__(自我): 22日,,,,,,,,,return 自我。标题
<强>二,生成数据表强>
创建类的代码已经,写好,此时需要两句代码将类转换成对应的数据表:
python manage.py makemigrations ,,, #将类转换成数据表结构 python manage.py , migrate ,,,,,,,,,,,,,, #根据上一句代码生成数据表Django使用表格的方法