Flask 关联数据库

#models.py

class Role(db.Model):
    __tablename__ = ‘roles‘
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True)
    users = db.relationship(‘User‘, backref=‘role‘, lazy=‘dynamic‘)

class User(UserMixin, db.Model):
    __tablename__ = ‘users‘
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True, index=True)
    username = db.Column(db.String(64), unique=True, index=True)
    password_hash = db.Column(db.String(128))
    role_id = db.Column(db.Integer, db.ForeignKey(‘roles.id‘), nullable=True)
    ticketholiday_id = db.relationship(‘Ticketholiday‘, backref=‘user‘, lazy=‘dynamic‘)

class Ticketholiday(db.Model):
    __tablename__ = ‘ticketholidays‘
    id = db.Column(db.Integer, primary_key=True)
    type = db.Column(db.Integer)
    about = db.Column(db.Text)
    user_id = db.Column(db.Integer, db.ForeignKey(‘users.id‘), nullable=False)

注意你在Role数据库模型中的users,它并不是roles表中的字段,users = db.relationship(‘User‘, backref=‘role‘, lazy=‘dynamic‘),relationship的第一个参数表示这个关系的另一个数据库模型是哪个,这里是User,第二个参数backref表示给关联的数据库模型添加一个属性,这里是role。
也就是说,你可以通过User模型的role这个属性去访问Role模型,比如你在views.py中的查询结果,你可以通过user.role.name得到roles表中对应记录的name,user.role.id则得到roles表中对应记录的id
注意名称的大小写,一一对应

时间: 2024-11-05 15:36:54

Flask 关联数据库的相关文章

Flask之数据库操作

4.2 数据库基本操作 在Flask-SQLAlchemy中,插入.修改.删除操作,均由数据库会话管理.会话用db.session表示.在准备把数据写入数据库前,要先将数据添加到会话中然后调用commit()方法提交会话. 数据库会话是为了保证数据的一致性,避免因部分更新导致数据不一致.提交操作把会话对象全部写入数据库,如果写入过程发生错误,整个会话都会失效. 数据库会话也可以回滚,通过db.session.rollback()方法,实现会话提交数据前的状态. 在Flask-SQLAlchemy

三 Flask+ MySQL 数据库操作

一: __init__.py作用: __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件.通常__init__.py 文件为空,但是我们还可以为它增加其他的功能.我们在导入一个包时,实际上是导入了它的__init__.py文件.这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入. __init__.py: from flask import Flask, url_for,

简单的vue.js的表单提交数据至flask然后数据库入库,再将表里面的数据展示在网页

一.先在数据库中创建表格 在mysql中建users库并建立一个含有ID,username,email三个字段的user表 二.去vue的组件里面写页面的表单代码,注意form标签里的action需要暂时先空着,等flask的代码写完后填入flask的链接地址 然后将这个vue.js需要在index.js里面配置 三.用python实现连接数据库,获取表单数据并入库 四,将写入到数据库表格的内容写入到网页中,在网页展示 别忘了在vue的form标签的action属性加入flask的地址  效果展

Flask -SQLAlchemy 数据库一对一

from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyfrom datetime import datetimeimport configapp = Flask(__name__)app.config.from_object(config)db = SQLAlchemy(app)class User(db.Model): __tablename__ = "user" id = db.Column(db.Integer

Django 使用Contenttype组件创建多关联数据库表

from django.db import models '''contenttype使用意义:如果使用contenttypes就不需要再使用多个Foreignkey, 因为在django_content_type表已经存储了app名和model名, 所以我们只需要将我们创建的模型与django_content_type表关联起来, 然后再存储一个实例 id 即可准确定位到某个app中某个模型的具体实例 ''' '''使用Django的Contenttype字段.''' # 导入必需模块 fro

pycharm中flask操作数据库

一.新建flask工程 二.新建数据库 三.Terminal中pip install xxx pip install flask_script pip install flast_migrate pip install pymysql 四.添加 config.py, models.py, manage.py app.py: from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) a

Windowform 窗体关联数据库存储,读取图片,参考代码

namespace flowlayoutpanel_容器 { public partial class picturebox : Form { public picturebox() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //从硬盘上读取图片显示在界面 openFileDialog1.Filter = "@.Jpg|*.jpg|@.Png|*.png|@.Jif|*.

php 关联数据库的留言板练习

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

flask操作数据库

原文地址:https://www.cnblogs.com/wapn/p/9651042.html