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 + openpyxl处理excel2007文档思路以及心得
Jul 14 Python
Python中的集合类型知识讲解
Aug 19 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
Python: 传递列表副本方式
Dec 19 Python
python实现连连看游戏
Feb 14 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
Python paramiko使用方法代码汇总
Nov 20 Python
pytorch中Schedule与warmup_steps的用法说明
May 24 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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学习之简单计算器实现代码
2011/06/09 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
基于JQuery的密码强度验证代码
2010/03/01 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
JS随机密码生成算法
2019/09/23 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
python实现斐波那契数列的方法示例
2017/01/12 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
python 追踪except信息方式
2020/04/25 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
Django缓存Cache使用详解
2020/11/30 Python
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
少年闰土教学反思
2014/02/22 职场文书
优秀实习生感言
2014/03/01 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
英语分层教学实施方案
2014/06/15 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL