培睿网站开发与设计,做服务器的网站的模板,桂林网站开发建设,网站建设类毕业设计锋哥原创的Python Web开发 Django5视频教程#xff1a;
2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计41条视频#xff0c;包括#xff1a;2024版 Django5 Python we…锋哥原创的Python Web开发 Django5视频教程
2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计41条视频包括2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等UP主更多精彩视频请关注UP账号。https://www.bilibili.com/video/BV14Z421z78C/Django5对各种数据库提供了很好的支持包括PostgreSQL、MySQL、SQLite和 Oracle而且为这些数据库提供了统一的API方法这些API统称为ORM框架。通过使用Django5内置的ORM框架可以实现数据库连接和读写操作。
ORM框架是一种程序技术用于实现面向对象编程语言中不同类型系统的数据之间的转换。 从效果上说它创建了一个可在编程语言中使用的“虚拟对象数据库”通过对虚拟对象数据库的操作从而实现对目标数据库的操作虚拟对象数据库与目标数据库是相互对应的。在 Django5中虚拟对象数据库也称为模型通过模型实现对目标数据库的读写操作实现方法如下: 配置目标数据库在settings.py中设置配置属性 构建虚拟对象数据库在App 的models.py文件中以类的形式定义模型。 通过模型在目标数据库中创建相应的数据表。 在其他模块如视图函数里使用模型来实现目标数据库的读写操作。
settings.py下我们配置mysql数据库
DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: db_python222,USER: root,PASSWORD: 123456,HOST: localhost,PORT: 3308}
}
然后我们在models.py里新建两个模型类分别是图书模型BookInfo和图书类别模型BookTypeInfo他们是多对一的关系
class BookTypeInfo(models.Model):id models.AutoField(primary_keyTrue)bookTypeName models.CharField(max_length20)class Meta:db_table t_bookTypeverbose_name 图书类别信息 # 给模型取个直观的名字class BookInfo(models.Model):id models.AutoField(primary_keyTrue)bookName models.CharField(max_length20)price models.FloatField()publishDate models.DateField()bookType models.ForeignKey(BookTypeInfo, on_deletemodels.PROTECT)class Meta:db_table t_bookverbose_name 图书信息 # 给模型取个直观的名字
模型字段类型如下 AutoField:自增长类型数据表的字段类型为整数长度为11位。 BigAutoField:自增长类型数据表的字段类型为bigint长度为20位。 CharField:字符类型。 BooleanField:布尔类型。 CommaSeparatedIntegerField:用逗号分割的整数类型。DateField:日期( Date类型。 DateTimeField:日期时间( Datetime)类型。Decimal:十进制小数类型。 EmailField:字符类型,存储邮箱格式的字符串。 FloatField:浮点数类型数据表的字段类型变成Double类型。IntegerField:整数类型数据表的字段类型为11位的整数。 BigIntegerField:长整数类型。 IPAddressField:字符类型存储Ipv4地址的字符串。 GenericIPAddressField:字符类型存储Ipv4和Ipv6地址的字符串。NullBooleanField:允许为空的布尔类型。 PositiveIntegerFiel:正整数的整数类型。 PositiveSmallIntegerField:小正整数类型取值范围为0~32767。SlugField:字符类型包含字母、数字、下画线和连字符的字符串。 SmallIntegerField:小整数类型取值范围为-32,768~32,767。 TextField:长文本类型。 TimeField:时间类型显示时分秒HH:MM[ :ss[.uuuuuu]]。URLField:字符类型存储路由格式的字符串。 BinaryField:二进制数据类型。 FileField:字符类型存储文件路径的字符串。ImageField:字符类型存储图片路径的字符串。 FilePathField:字符类型从特定的文件目录选择某个文件。 模型字段参数如下 verbose_name:默认为None在 Admin站点管理设置字段的显示名称。 primary_key:默认为False若为True则将字段设置成主键。 max_length:默认为None设置字段的最大长度。 unique:默认为False若为True则设置字段的唯一属性。 blank:默认为False若为True则字段允许为空值数据库将存储空字符串。null:默认为False若为True则字段允许为空值数据库表现为NULL。 db_index:默认为False若为True则以此字段来创建数据库索引。default:默认为NOT_PROVIDED对象设置字段的默认值。 editable:默认为True允许字段可编辑用于设置Admin的新增数据的字段。serialize:默认为True允许字段序列化可将数据转化为JSON格式。 unique_for_date:默认为None设置日期字段的唯一性。 unique_for_month:默认为None设置日期字段月份的唯一性。unique_for_year:默认为None设置日期字段年份的唯一性。choices:默认为空列表设置字段的可选值。 help_text:默认为空字符串用于设置表单的提示信息。 db_column:默认为None设置数据表的列名称若不设置则将字段名作为数据表的列名。 db_tablespace:默认为None如果字段已创建索引那么数据库的表空间名称将作为该字段的索引名。注意:部分数据库不支持表空间。 auto_created:默认为False若为True则自动创建字段用于一对一的关系模型。validators:默认为空列表,设置字段内容的验证函数。 error_messages:默认为None设置错误提示。 ForeignKey方法参数如下
参数名参数说明to指定关联的目标模型类。可以使用字符串表示模型类的路径也可以直接使用模型类的引用。on_delete指定当关联对象被删除时的行为。CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET0、DO_NOTHING。related_name指定反向关联的名称默认为模型类名_set。to_field指定关联的目标模型类中用于关联的字段名称。默认为主键字段。db_index如果为True则在目标模型的关联字段上创建索引。null指定关联字段是否可以为空。如果 nullTrue则数据库中该字段将允许 NULL值。blank指定关联字段是否可以为空。如果blankTrue则表单中该字段可以为空。limit_choices_to指定关联对象的过滤条件。可以是一个字典、一个 QuerySet或一个函数。verbose_name用于在 Django Admin后台中显示字段名称。help_text用于在 Django Admin后台中显示帮助文本。 on_delete的models属性有下面设置选项 CASCADE:这就是默认的选项级联删除你无需显性指定它。 PROTECT: 保护模式如果采用该选项删除的时候会抛出ProtectedError错误。 SET_NULL: 置空模式删除的时候外键字段被设置为空前提就是blankTrue, nullTrue,定义该字段的时候允许为空。 SET_DEFAULT: 置默认值删除的时候外键字段设置为默认值所以定义外键的时候注意加上一个默认值。 SET(): 自定义一个值该值当然只能是对应的实体了