Skip to content

数据库部分不能正常运行 #2

@523120215

Description

@523120215

作者你好,
我在抄第五章的时候,使用Flask_SQLAlchemy不能正常运行,没有找到类似的东西,烦请帮忙瞅一眼。
代码如下:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# MySQL所在的主机名
HOSTNAME = "192.168.99.200"
# MySQL监听的端口号,默认3306
PORT = 3306
# 连接MySQL的用户名,读者用自己设置的
USERNAME = "root"
# 连接MySQL的密码,读者用自己的
PASSWORD = "123456"
# MySQL上创建的数据库名称
DATABASE = "database_learn"
app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"

db = SQLAlchemy(app)

with db.engine.connect() as conn:
    rs = conn.execute("select 1")
    print(rs.fetchone())

报错如下:

FLASK_APP = app.py
FLASK_ENV = development
FLASK_DEBUG = 1
In folder D:/personal/code/database
D:\personal\code\database\venv\Scripts\python.exe -m flask run --port=8000 --host=0.0.0.0
Traceback (most recent call last):
File "C:\Users\52312\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\52312\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "D:\personal\code\database\venv\lib\site-packages\flask_main
.py", line 3, in
main()
File "D:\personal\code\database\venv\lib\site-packages\flask\cli.py", line 1047, in main
cli.main()
File "D:\personal\code\database\venv\lib\site-packages\click\core.py", line 1055, in main
rv = self.invoke(ctx)
File "D:\personal\code\database\venv\lib\site-packages\click\core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "D:\personal\code\database\venv\lib\site-packages\click\core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "D:\personal\code\database\venv\lib\site-packages\click\core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "D:\personal\code\database\venv\lib\site-packages\click\decorators.py", line 84, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "D:\personal\code\database\venv\lib\site-packages\click\core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "D:\personal\code\database\venv\lib\site-packages\flask\cli.py", line 911, in run_command
raise e from None
File "D:\personal\code\database\venv\lib\site-packages\flask\cli.py", line 897, in run_command
app = info.load_app()
File "D:\personal\code\database\venv\lib\site-packages\flask\cli.py", line 308, in load_app
app = locate_app(import_name, name)
File "D:\personal\code\database\venv\lib\site-packages\flask\cli.py", line 218, in locate_app
import(module_name)
File "D:\personal\code\database\app.py", line 22, in
with db.engine.connect() as conn:
File "D:\personal\code\database\venv\lib\site-packages\flask_sqlalchemy\extension.py", line 642, in engine
return self.engines[None]
File "D:\personal\code\database\venv\lib\site-packages\flask_sqlalchemy\extension.py", line 628, in engines
app = current_app._get_current_object() # type: ignore[attr-defined]
File "D:\personal\code\database\venv\lib\site-packages\werkzeug\local.py", line 513, in _get_current_object
raise RuntimeError(unbound_message) from None
RuntimeError: Working outside of application context.

This typically means that you attempted to use functionality that needed
the current application. To solve this, set up an application context
with app.app_context(). See the documentation for more information.

进程已结束,退出代码1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions