fastapi: 用ipython从命令行执行项目中的函数
一,安装第三方库:
$ pip install ipython
二,执行一个同步方法:
执行ipython启动界面
In [1]: from app.utils.file_handle import get_file_info
In [2]: get_file_info('/data/file/fast/images/logo_300.jpg')
Out[2]:
{'success': True,
'message': '',
'data': {'file_path': '/data/file/fast/images/logo_300.jpg',
'file_name': 'logo_300',
'size': 19386,
'ext': 'jpg',
'width': 512,
'height': 512}}
三,执行一个异步方法:写入数据库:
在前面加await
In [3]: from app.core.lifespan import init_data
In [4]: await init_data()
2026-07-23 14:59:27,790 INFO sqlalchemy.engine.Engine SELECT DATABASE()
2026-07-23 14:59:27,790 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-23 14:59:27,791 INFO sqlalchemy.engine.Engine SELECT @@sql_mode
2026-07-23 14:59:27,791 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-23 14:59:27,792 INFO sqlalchemy.engine.Engine SELECT @@lower_case_table_names
2026-07-23 14:59:27,792 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-23 14:59:27,793 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-07-23 14:59:27,801 INFO sqlalchemy.engine.Engine SELECT users.username, users.nickname, users.password, users.avatar_id, users.id, users.status, users.deleted, users.created_at, users.updated_at
FROM users
WHERE users.username = %s
2026-07-23 14:59:27,802 INFO sqlalchemy.engine.Engine [generated in 0.00039s] ('admin',)
/data/python/fastapi/demo1/app/core/lifespan.py:42: RuntimeWarning: coroutine 'AsyncSession.commit' was never awaited
db.commit()
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
2026-07-23 14:59:27,806 INFO sqlalchemy.engine.Engine INSERT INTO users (username, nickname, password, avatar_id, status, deleted) VALUES (%s, %s, %s, %s, %s, %s)
2026-07-23 14:59:27,806 INFO sqlalchemy.engine.Engine [generated in 0.00038s] ('admin', '管理员', '$2b$12$fJWexLMrpZPxu94E4flgMOZS8iJHl7ZH9WB2VCzj0gdrJM2F7Psry', None, 1, 0)
2026-07-23 14:59:27,807 INFO sqlalchemy.engine.Engine COMMIT
浙公网安备 33010602011771号