sql 某列数据全部为0则不显示该列_Flask干货:访问数据库——Flask-SQLAlchemy模型与表映射方法...

7469a4ee324def8e1f48ff4b6bd9b090.png

SQLAlchemy的重要功能之一,就是允许我们根据数据库的表结构来创建数据模型,这样做就不需要手动登录到数据库中使用SQL语句来创建表了。

那怎么创建呢?

数据模型!只要把数据模型定义好,表结构自然生成。

一、创建数据库表

表需要放在数据库中,这里我们沿用之前的“wuhao”数据库,没有的话使用create database wuhao;命令创建。然后新建文件app.py,代码如下:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
from datetime import datetime

app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)

class Book(db.Model):
    __tablename__ = 'book'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(50), nullable=False)
    publishing_office = db.Column(db.String(100), nullable=False)
    storage_time = db.Column(db.DateTime, default=datetime.now)
db.create_all()

@app.route('/')
def index():
    return "Hello World!"

if __name__ == '__main__':
    app.run(debug=True)

导入的config.py文件与之前的文件相同,是登录数据库代码。

运行后查看是否报错:

44a4e8ab43ed131bd8990152f21f15cd.png

如果没报错,用MySQL命令行可以看到成功添加了“book”表:

175160b9a64ad43f05026f67d42812b5.png

Flask-SQLAlchemy中字段的声明可选择参数描述,例如用来指定是否是表的主键、表的一列中是否允许有相同只、是否允许某列的值为空等,具体如下:

l primary_key:如果设置为True,该列为表的主键;

l unique:如果设置为True,该列不允许有相同值;

l index:如果设置为True,为提高查询效率,为该列创建索引;

l nullable:如果设置为True,该列允许为空;

l default:定义该列的默认值。

二、添加数据

如果需要添加数据,只用通过类实例化添加。首先用命令drop table book;删除之前创建的“book”表,然后运行下面的代码,内容如下:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
from datetime import datetime
import pymysql

pymysql.install_as_MySQLdb()
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)

db.init_app(app)

class Book(db.Model):
    __tablename__ = 'book'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(50), nullable=False)
    publishing_office = db.Column(db.String(100), nullable=False)
    isbn = db.Column(db.String(100), nullable=False)
    storage_time = db.Column(db.DateTime, default=datetime.now)
db.create_all()

book1 = Book(id='005', title='人工智能导论', publishing_office='高等教育出版社', isbn='9787040479843')
db.session.add(book1)
db.session.commit()

@app.route('/')
def index():
    return "Hello World!"

if __name__ == '__main__':
    app.run(debug=True)

上面的代码产生了一个book1对象,它的属性包括id=’005’,title=’人工智能导论’,publishing_ofiice=’高等教育出版社’, isbn='9787040479843',之所以要删除表是因为这次加入了isbn属性,需要重新创建

创建好的类对象需要通过db.session.add(book1)把对象添加到会话中,再通过db.session.commit()完成事务提交。

35e6c50189e6fbbd6ab16707811fa5fc.png

由于是中文,会有乱码问题。

从上面的内容也能看出,表实际上是一种映射关系,只要确定好数据模型,表结构会自然生成。

今天的内容就这么多,下一次将说说如何用SQLAlchemy进行增、删、改、查

你确定不关注我一波?

56934458d37072e875f3a45a39353280.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值