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 相关文章推荐
py2exe 编译ico图标的代码
Mar 08 Python
Python素数检测的方法
May 11 Python
python中threading超线程用法实例分析
May 16 Python
python爬虫使用cookie登录详解
Dec 27 Python
对pandas中apply函数的用法详解
Apr 10 Python
pytorch 转换矩阵的维数位置方法
Dec 08 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
Python求正态分布曲线下面积实例
Nov 20 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
弄清Pytorch显存的分配机制
Dec 10 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自动加载的两种实现方法
2010/06/21 PHP
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
php实现对象克隆的方法
2015/06/20 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
初识javascript 文档碎片
2010/07/13 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
Python 专题一 函数的基础知识
2017/03/16 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
django从后台返回html代码的实例
2020/03/11 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
python中字典增加和删除使用方法
2020/09/30 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
简单介绍Object类的功能、常用方法
2013/10/02 面试题
管理科学大学生求职信
2013/11/13 职场文书
致全体运动员广播稿
2014/02/01 职场文书
家长会主持词开场白
2014/03/18 职场文书
整改报告格式
2014/11/06 职场文书
体检通知范文
2015/04/21 职场文书
pandas取dataframe特定行列的实现方法
2021/05/24 Python
Python中如何处理常见报错
2022/01/18 Python