这个错误难道是因为没有通过命令端运行的原因?
来源:5-3 网易新闻框架搭建
冰红茶煮蛋
2018-07-25
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATEBASE_URL'] = 'mysql://root:@127.0.0.1/net_news?charset=utf8' db = SQLAlchemy(app) class News(db.Model): __tablename__ = 'news' ID = db.Column(db.Integer, primary_key = True) #如果数据库中的表格id 标签为“XXid” 则需要在Column()里标明 title = db.Column(db.String(200), nullable = False) content = db.Column(db.String(2000), nullable = False) types = db.Column(db.String(10), nullable = False) image = db.Column(db.String(300)) author = db.Column(db.String(20)) view_count = db.Column(db.Integer) crate_time = db.Column(db.DateTime) is_valid = db.Column(db.Boolean) def __repr__(self): return '<News %/r>' % self.title def main(): db.create_all() if __name__ == '__main__': main()
老师,运行上述代码,出现如下错误,感觉错在创建表 db.create_all()这一段,那到底该如何很好的去实现(不太习惯在cmd中使用)
C:\Users\560\Anaconda3\lib\site-packages\flask_sqlalchemy\__init__.py:774: UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. Defaulting SQLALCHEMY_DATABASE_URI to "sqlite:///:memory:". 'Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. '
C:\Users\560\Anaconda3\lib\site-packages\flask_sqlalchemy\__init__.py:794: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning. 'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
还有就是这个Flask-SQLAlchemy的中文说明书用的是from flask.ext.sqlalchemy import SQLAlchemy 这与flask_sqlachemy有什么区别么
http://docs.jinkan.org/docs/flask-sqlalchemy/quickstart.html#id2
1回答
-
问题一:打印出的信息属于警告信息,不是错误信息,表应该还是创建成功了吧?!关于cmd的命令行操作,要从实际开发,你的表结构不会频繁改动,所以只有项目上线的时候才会执行db.create_all(),后面增加了字段,修改了字段,直接通过SQL来操作即可。试想:每次都执行db.create_all()是不是首先要删除数据库,再重新建立?那以前产生的数据怎么办?
问题二:
from flask.ext.sqlalchemy import SQLAlchem和直接引入都是可以的,你可以看flask.ext的源码,里面的只是多了一层封装。
032018-07-27
Python操作三大主流数据库-MySQL+MongoDB+Redis
2024 学习 · 376 问题
相似问题