Flask和Django框架中自定义模型类的表名、父类相关问题分析
作者:qq_41804164 发布时间:2022-04-04 00:23:17
标签:Flask,Django,模型类,父类
本文实例分析了Flask和Django框架中自定义模型类的表名、父类相关问题。分享给大家供大家参考,具体如下:
一. Flask和Django中定义表名(执行迁移后生成)的方式和flask是不同的:
1. Django中表名的定义方式,以代码为例说明
class User(AbstractUser): # 继承自认证系统模型类
"""用户模型类"""
mobile = modles.CharField(max_length=11, mix_length = 11, uniqe=True, verbose_name='手机号')
class Meta:
db_table = 'tb_users' # 定义数据库中表名 , 如果不定义Django会生成默认固定格式表名
verbose_name = 'tb_table' # 定义后台管理中类名
verbose_naem_plural = vervose_name # 定义后台管理中类
模型类中属性和修改类中verbose_name = ' ###'
均是用来在后台管理中显示的名称
2. Flask中表名的定义方式,以代码为例说明
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from settings import Config
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
# 自定义模型类:一方
calss Movie(db.Model): # 必须继承自db.Model
__tablename__ = 'movies' # 定义数据库中表名
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(64),unique=True)
# 一对多的关系模型中,一方定义关系,us给一方使用,实现一对多的查询,backref给多方使用,实现多对一的查询.
us = db.relationship('Role', backref='movie')
def __repr__(self):
return 'Movie:%s' % self.name
# 自定义模型类:多方
class Role(db.Model):
__tablename__ = 'roles' # 如果不定义表名,flask会生成默认固定格式表名.
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True, index=True)
email = db.Column(db.String(64),unique=True)
password = db.Column(db.String(64))
movie_id = db.Column(db.Integer, db.ForeignKey('movie.id')) # 多方定义外键,指向一方主键
def __repr__(self):
return 'Role:%s' % self.name
if __name__ == '__main__':
db.drop_all()
db.cteate_all()
app.run()
二. Flask和Django中父类问题
在Django和Flask中,均有框架已封装好的模型类,而且固定了自定义的模型类必须继承自框架已封装好的模型类作为其父类.
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/qq_41804164/article/details/80836981
0
投稿
猜你喜欢
- DreamWeaver 4的到来让大家兴奋吧?但是大家一定为DreamWeaver4里面的字体、文字大
- 1.官网语法pandas.read_csv(filepath_or_buffer, sep=NoDefault.no_default**,*
- 最常用的遍历方式为for语句(也有递归、while方式)。当我们遍历一个数组的时候,我们一般会这么做:var arr = [1,2,3,4,
- 一、Python短信发送界面最后的效果二、准备:注册腾讯云账号并配置短信功能(1)注册腾讯云账号登录腾讯云网址(2)获取AppID、AppK
- asp之家注:学习javascript(js),免不了要用到打开新窗口,方法很多,总的来说是使用window.open。不同与HTML中的t
- 如图:其中Num是自增长列,Operation是分类标签,count是汇总数据 代码如下:select Num=row_numb
- 动态加载JavaScript文件和CSS资源为Web前端开发提供了巨大的灵活性,同时也实现了lazy load和按需加载,相比XMLHttp
- 前言有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了
- 如果你是一位ASP爱好者,你一定想过ASP的执行效率如何?大家都知道ASP效率和CGI的比,在访问量少的时候,它们是不相上下的,有时可能CG
- <% '#######以下是一个类文件,下面的注解是调用类的方法####################
- 背景背景是这样的, 我的家里台式机常年 休眠, 并配置了 Wake On Lan (WOL) 方便远程唤醒并使用.但是我发现, 偶尔台式机会
- 当列表菜单项目特别多的时候,使用JavaScript手风琴菜单(Accordion Menus)是个不错的选择。手风琴折叠菜单利于组织菜单项
- 出自: 编程中国 http://www.bc-cn.net作者: 天涯听雨 &nbs
- # 有时候我们提前知道了一个数组的大小,需要给每个元素赋值,此时append好像不管用。我们需要定义一个定# # 长的数组,python中代
- 代码如下:---在仓储管理中经常会碰到的一个问题 一、关于LIFO与FIFO的简单说明 ---FIFO: First in, First o
- Firefox 3.5已经发布了几个月了,且已经历5次小幅更新。而基于Gecko 1.9.2的Firefox 3.6也已经开发数月,现在已经
- 使用scrapy爬取了网上的一些数据,存储在了mysql数据库中,想使用Django将数据展示出来,在网上看到都是使用Django的mode
- 理解切片基本用法:首先需要明白,可迭代对象,按照正数索引(正序)是从0开始的,按照负数索引(逆序)是从-1开始的。>>>
- 一、在settings.py中配置DATABASES = { 'default': { 'ENGINE&
- 基本概念数字图像定义对于一幅图像,我们可以将其放入坐标系中,这里取图像左上定点为坐标原点,x 轴向右,和笛卡尔坐标系x轴相同;y 轴向下,和