Flask和Django框架中自定义模型类的表名、父类相关问题分析


Posted in Python onJuly 19, 2018

本文实例分析了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相关内容可查看本站专题:《Python入门与进阶经典教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
Python中的进程分支fork和exec详解
Apr 11 Python
windows下Python实现将pdf文件转化为png格式图片的方法
Jul 21 Python
彻底搞懂Python字符编码
Jan 23 Python
django 发送手机验证码的示例代码
Apr 25 Python
Python if语句知识点用法总结
Jun 10 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
Python调用graphviz绘制结构化图形网络示例
Nov 22 Python
python扫描线填充算法详解
Feb 19 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
python数字图像处理数据类型及颜色空间转换
Jun 28 Python
python多行字符串拼接使用小括号的方法
Mar 19 #Python
python中的字符串内部换行方法
Jul 19 #Python
flask框架视图函数用法示例
Jul 19 #Python
Python中的单行、多行、中文注释方法
Jul 19 #Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 #Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
Jul 19 #Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 #Python
You might like
php SQL之where语句生成器
2009/03/24 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
python3抓取中文网页的方法
2015/07/28 Python
python中的计时器timeit的使用方法
2017/10/20 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
django创建css文件夹的具体方法
2020/07/31 Python
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
生产副总岗位职责
2013/11/28 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
电教室标语
2014/06/20 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
毕业生个人自荐书
2015/03/05 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis