请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

这个错误难道是因为没有通过命令端运行的原因?

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

https://img1.sycdn.imooc.com//szimg/5b5858af0001328007040158.jpg

正在回答

1回答

问题一:打印出的信息属于警告信息,不是错误信息,表应该还是创建成功了吧?!关于cmd的命令行操作,要从实际开发,你的表结构不会频繁改动,所以只有项目上线的时候才会执行db.create_all(),后面增加了字段,修改了字段,直接通过SQL来操作即可。试想:每次都执行db.create_all()是不是首先要删除数据库,再重新建立?那以前产生的数据怎么办?


问题二:

from flask.ext.sqlalchemy import SQLAlchem和直接引入都是可以的,你可以看flask.ext的源码,里面的只是多了一层封装。

0 回复 有任何疑惑可以回复我~
  • 提问者 冰红茶煮蛋 #1
    表并没有创建出来,数据库名跟app.config中的也一致
    回复 有任何疑惑可以回复我~ 2018-07-27 12:25:31
  • NavCat 回复 提问者 冰红茶煮蛋 #2
    你配置的搞错了。
    是SQLALCHEMY_DATABASE_URI,而不是SQLALCHEMY_DATEBASE_URL,以后这种配置型的字段或者是代码,建议从文档上复制。
    回复 有任何疑惑可以回复我~ 2018-07-27 22:14:41
  • 提问者 冰红茶煮蛋 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-07-27 23:20:28
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信