如何解决pycharm flask项目未创建sqlite文件
我正在使用pycharm创建一个flask项目。
问题是,如果我使用python app.py
之类的命令来运行它应该执行的代码,并且我从flask中获得了以下输出:
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
database C:\Users\jalco\PycharmProjects\pypi_new\db\pypi.sqlite
* Debugger is active!
* Debugger PIN: 192-734-348
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
但是在PyCharm中运行它却可以python.exe -m flask run
我得到以下输出:
FLASK_APP = app.py
FLASK_ENV = development
FLASK_DEBUG = 1
In folder C:/Users/jalco/PycharmProjects/pypi_new
C:\Users\jalco\PycharmProjects\pypi_new\venv\Scripts\python.exe -m flask run
* Serving Flask app "app.py" (lazy loading)
* Environment: development
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 185-154-487
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
PyCharm似乎正在跳过完全创建数据库的功能,并且仅运行任何与flask相关的功能,PyCharm中是否有我未设置的设置,或者其他人遇到过此问题吗?
初始化sqlite数据库的代码:
import sqlalchemy as sa
import sqlalchemy.orm as orm
from data.modelbase import SqlAlchemyBase
factory = None
def global_init(db_file: str):
global factory
if factory:
return
if not db_file or not db_file.strip():
raise Exception("You must specify a db file")
conn_str = 'sqlite:///' + db_file.strip()
engine = sa.create_engine(conn_str,echo=False)
factory = orm.sessionmaker(bind=engine)
# noinspection PyUnresolvedReferences
from data.package import Package
SqlAlchemyBase.metadata.create_all(engine)
app.py的代码
import os
import sys
import flask
import data.db_session as db_session
folder = os.path.abspath(os.path.join(os.path.dirname(__file__),'..'))
sys.path.insert(0,folder)
app = flask.Flask(__name__)
def main():
register_blueprints()
db_file = setup_db()
app.run(debug=True)
def setup_db():
db_file = os.path.join(
os.path.dirname(__file__),'db','pypi.sqlite')
db_session.global_init(db_file)
return db_file
if __name__ == '__main__':
main()
谢谢 吉姆
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。