app.py
#encoding:utf-8
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
import pymysql
#import MySQLdb
from datetime import datetime
app=Flask(__name__)
app.config.from_object(config)
#配置文件实例化
#初始一个对象
db=SQLAlchemy(app)
#pymysql.install_as_MySQLdb()
class Book(db.Model):
__tablename__ = 'book1'
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() #d对象映射 创建表
book1=Book(id='001',title='AI',publishing_office='higheducation',isbn='978869888')
db.session.add(book1)
try:
db.session.commit()
except Exception as e:
print(e)
@app.route('/')
def index():
return 'index'
@app.route('/select')
def select():
result=Book.query.filter(Book.id=='3').first()
print(result.title)
return "查询数据成功"
if __name__=='__main__':
app.run()
config.py
#encoding:utf-8
#coding:utf-8
#dialect+driver://username:password@host:port/database
DIALECT='MySQL'
DRIVER='pyMySQL'
USERNAME='root'
PASSWORD='root01'
HOST='127.0.0.1'
PORT='3306'
DATABASE='demo_01'
#这个连接字符串变量名是固定的具体 参考 flask_sqlalchemy 文档 sqlalchemy会自动找到flask配置中的 这个变量
SQLALCHEMY_DATABASE_URI='{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)
#关闭动态跟踪
SQLALCHEMY_TRACK_MODIFICATIONS=False
#查询时会显示原始SQL语句
SQLALCHEMY_ECHO=True
执行app.py 报错 can't load plugin:%s:%s %(self.group,name) sqlalchemy.exc.NoSuchModuleError: Can't load plugin :sqlalchemy.dialects:MySQL.pyMySQL