[flask初學問題]RuntimeError: No application found. Either work inside a view function or push an application context. See http://flask-sqlalchemy.pocoo.org/contexts/


看B站視頻學習flask-SQLalchemy時,報錯RuntimeError: No application found. Either work inside a view function or push an application context. See http://flask-sqlalchemy.pocoo.org/contexts/

視頻鏈接是https://bilibili.com/video/av19817183?p=20

P20 04-03數據庫的基本操作1-增刪改

位置3分17左右

以下是視頻中說到的代碼:

 1 from flask import Flask
 2 from flask_sqlalchemy import SQLAlchemy
 3 
 4 app = Flask(__name__)
 5 #  配置數據庫的地址
 6 app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:emperor12@127.0.0.1/flask_sql_demo'
 7 #  跟蹤數據庫的修改 --> 不建議開啟,未來的版本中會刪除
 8 app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
 9 db = SQLAlchemy()
10 
11 # 數據庫的模型,需要繼承db.Model
12 class Role(db.Model):
13     # 定義表名
14     __tablename__ = 'roles'
15     # 定義字段
16     id = db.Column(db.Integer,primary_key=True)
17     name = db.Column(db.String(16),unique=True)
18 class Users(db.Model):
19     __tablename__ = 'users'
20     id = db.Column(db.Integer,primary_key = True)
21     name = db.Column(db.String(16),unique=True)
22     # db.ForeignKey('roles.id') 表示是外鍵。表名.id
23     role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
24 
25 @app.route('/')
26 def hello_world():
27     return 'Hello World!'
28 
29 if __name__ == '__main__':
30     # 刪除表
31     db.drop_all()
32     # 創建表
33     db.create_all()
34     app.run(debug = True)

 

按照視頻彈幕的指引,先是在第一行import pymysql,但是不知道為什么顯示是灰色的

然后pip install mysql-connector

或者是在cmd中net start mysql57

還是按照pycharm提示中https://flask-sqlalchemy.palletsprojects.com/en/2.x/contexts/中說的

def create_app(): app = Flask(__name__) db.init_app(app) return app

都沒有效果

最后看了https://blog.csdn.net/zhongqiushen/article/details/79162792

在第9行把

db = SQLAlchemy()  改為   db = SQLAlchemy(app)

就可以了,我也沒有明白為什么


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM