1、问题遇到的现象和发生背景
python3
使用flask_sqlalchemy连接mysql。执行db.create_all()后,数据库没有创建表。程序运行之后也没有报错,怀疑是根本没有连接到数据库
我的代码
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
#数据库配置变量
HOSTNAME = '192.168.126.108'
PORT = '3306'
DATABASE = 'material'
USERNAME = 'flask'
PASSWORD = '12345678.Com'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
app.config['DWLALCHEMY_DATABASE_URI'] = DB_URI
#关闭数据库的跟踪
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
#开启输出sql语句
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)
#定义ORM模型
class Article(db.Model):
__tablename__ = "article"
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title = db.Column(db.String(200),nullable=False)
content = db.Column(db.Text,nullable=False)
db.create_all()
@app.route("/trick")
def trick_view():
article = Article(title="123", content="xxx")
db.session.add(article)
db.session.commit()
return "操作"
@app.route('/')
def index():
engine = db.get_engine()
with engine.connect() as conn:
result = conn.execute("select 1")
print(result.fetchone())
return 'Helle world!'
if __name__=='__main__':
app.run()
2、 运行结果
2022-07-04 14:16:51,098 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2022-07-04 14:16:51,099 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("article")
2022-07-04 14:16:51,099 INFO sqlalchemy.engine.Engine [raw sql] ()
2022-07-04 14:16:51,102 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("article")
2022-07-04 14:16:51,102 INFO sqlalchemy.engine.Engine [raw sql] ()
2022-07-04 14:16:51,104 INFO sqlalchemy.engine.Engine
CREATE TABLE article (
id INTEGER NOT NULL,
title VARCHAR(200) NOT NULL,
content TEXT NOT NULL,
PRIMARY KEY (id)
)
2022-07-04 14:16:51,104 INFO sqlalchemy.engine.Engine [no key 0.00026s] ()
2022-07-04 14:16:51,105 INFO sqlalchemy.engine.Engine COMMIT
- Serving Flask app 'app' (lazy loading)
- Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead. - Debug mode: on
- Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
- Restarting with stat
3、 我的解答思路和尝试过的方法
曾经怀疑是库的问题,我安装了flask,flask-sqlalchemy,sqlalchemy和pymysql