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基础教程之缩进介绍
Aug 29 Python
python实现颜色空间转换程序(Tkinter)
Dec 31 Python
浅析Python中元祖、列表和字典的区别
Aug 17 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
python读取并写入mat文件的方法
Jul 12 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
python输出第n个默尼森数的实现示例
Mar 08 Python
Matplotlib中%matplotlib inline如何使用
Jul 28 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
python破解同事的压缩包密码
Oct 14 Python
python 实现学生信息管理系统的示例
Nov 28 Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 20 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
第十一节--重载
2006/11/16 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
一道关于php变量引用的面试题
2010/08/08 PHP
处理单名多值表单的详解
2013/06/08 PHP
php文件操作相关类实例
2015/06/18 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
loading动画特效小结
2017/01/22 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
Python实现句子翻译功能
2017/11/14 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
小学三年级学生评语
2014/04/22 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis
Python+Appium实现自动抢微信红包
2021/05/21 Python
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android