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

来源: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

http://img.mukewang.com/szimg/5b5858af0001328007040158.jpg

写回答

1回答

NavCat

2018-07-26

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


问题二:

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

0
3
冰红茶煮蛋
非常感谢!
2018-07-27
共3条回复

Python操作三大主流数据库-MySQL+MongoDB+Redis

一次实战同时掌握Python操作MySQL,MongoDB,Redis 三大数据库使用技巧

2024 学习 · 376 问题

查看课程