基于 Python 的 Web 应用开发实战中 Python hello.py shell 无法进入 shell 的问题

2018-09-07 15:59:02 +08:00
 bmos
怎么搜都没找到解决方案。按照 python hello.py shell 运行,没有进入 shell 环境,有没有同样掉进过坑里的筒子解答一下?系统是 windows
2343 次点击
所在节点    Python
7 条回复
d0m2o08
2018-09-07 16:06:10 +08:00
大哥你连个报错信息都不发,让我们猜?
bmos
2018-09-07 16:11:20 +08:00
@d0m2o08 怪我疏忽,问题就是没有任何信息输出。
chenstack
2018-09-07 17:31:59 +08:00
大概搜了一下书名,找到的是关于 flask 的书,相关片段:
示例 5-7 hello.py:为 shell 命令添加一个上下文
from flask.ext.script import Shell
def make_shell_context():
return dict(app=app, db=db, User=User, Role=Role)

manager.add_command("shell", Shell(make_context=make_shell_context))

make_shell_context() 函数注册了程序、数据库实例以及模型,因此这些对象能直接导入 shell:

$ python hello.py shell


根据你的描述推测是未调用 manager.run(),此书在示例 2-3 的代码中有:
if __name__ == '__main__':
manager.run()

另外书中代码很多地方都是针对旧版本的 flask,推荐还是从官方的最新文档开始入门
hubahuba
2018-09-08 01:29:07 +08:00
@chenstack 这本书,坑看到不到一半,发现版本问题很大的障碍。
wersonliu9527
2018-09-08 15:42:41 +08:00
我猜应该是需要 set FLASK_APP=hello.py
bmos
2018-09-08 21:06:22 +08:00
@chenstack 感谢,是这个原因。
@hubahuba 他的 github 库内容比较书本还是有更新了的。但是没想到也不能直接使用。感觉上下文联系的太强了,看书比较马大哈,一有看漏就接不上。
@wersonliu9527 谢谢,设置 FLASK_APP 后只是可以用 flask run 运行吧。
zigzagpigx
2019-12-22 14:58:38 +08:00
百度第一条来的,新版用 pip install flask-script,导入 from flask_script import Manager,注册 manager = Manager(app),运行 if __name__ == '__main__': manager.run()。
https://blog.csdn.net/theShepherd/article/details/86764926

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487148

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX