我在vsc和windows 10中的flask中创建数据库时遇到问题。有人能帮忙解决这个问题吗?

2024-04-25 14:07:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要创建数据库

这是我创建数据库需要键入的内容

from flaskblog import db
from flaskblog.models import User, Post, etc  
db.create_all()

我首先在VisualStudio代码中的powershell中键入python

然后我键入from flaskblog import db并得到错误

ImportError:无法从“flaskblog”导入名称“db”(C:\Users\n\OneDrive\Desktop\codingfiles2use\flaskblog\uem>init\uu.py)

这是我的文件树。 file tree

我该如何解决这个问题?谢谢

app.py

from flask import Flask  
# make SQLAlchemy work 
from flask_sqlalchemy import SQLAlchemy
# make login work
from flask_login import LoginManager# user_loaded_from_header
# make crf protection work 
from flask_wtf.csrf import CSRFProtect





# setup databases
db = SQLAlchemy()
# Make Login user variable work ?
login_manager = LoginManager()
# Setup CSRF protection. This allows html forms to work and be secure.  
csrf = CSRFProtect()


# imports config from config.py
from flaskblog.config import Config


def create_app(config_class=Config): 
    app = Flask(__name__) 
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False 
    # what does this do?
    app.config.from_object(config_class)
    
    db.init_app(app)
    login_manager.init_app(app)
    csrf.init_app(app)
    
    from flaskblog.usersinfo.routes import usersinfo
    # why lowercse b in blueprints ?
    app.register_blueprint(usersinfo)
    return app 

from .models import User 

@login_manager.user_loader
def load_user(user_id):
    return User.get_by_id(user_id)

run.py

from flaskblog.app import create_app
app = create_app()
if __name__ == '__main__': 
    app.run(debug=True)

config.py

import os     

class Config:
    # Setup CSRF secret key
    SECRET_KEY = os.urandom(32)
    SQLALCHEMY_DATABASE_URI = 'sqlite:///tmp/test.db'

我打字的时候

from flaskblog import db
from flaskblog.models import User   
db.create_all()

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\nmyle\AppData\Local\Programs\Python\Python39\lib\site-packages\flask_sqlalchemy\__init__.py", line 1094, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
  File "C:\Users\nmyle\AppData\Local\Programs\Python\Python39\lib\site-packages\flask_sqlalchemy\__init__.py", line 1071, in _execute_for_all_tables   
    app = self.get_app(app)
  File "C:\Users\nmyle\AppData\Local\Programs\Python\Python39\lib\site-packages\flask_sqlalchemy\__init__.py", line 1042, in get_app
    raise RuntimeError(
RuntimeError: No application found. Either work inside a view function or push an application context. See http://flask-sqlalchemy.pocoo.org/contexts/.

我试图通过添加一个不同的代码块来完成代码,但是没有成功,我仍然得到一个错误。我尝试了所有的代码块我该如何修复

http://flask-sqlalchemy.pocoo.org/contexts/


Tags: frompyimportconfigappflaskdbsqlalchemy

热门问题