集成Python Shell

每次启动shell会话都要导入Python相关对象(数据库实例和模型),这是件十分枯燥的工作。为了避免一直重复导入,我们可以做些配置,让flask-script的shell命令自动导入特定的对象。

Flask的开发Web服务器支持很多启动设置选项,但只能在脚本中作为参数传给app.run()函数。这种方式并不十分方便,传递设置选项的理想方式是使用命令行参数。
Flask-script是一个Flask扩展,为Flask程序添加了一个命令行解析器。Flask-script自带了一组常用选项,而且还支持自定义命令。

Flask-Script扩展使用pip安装:

(flask)$ pip install flask-script

创建Flask-script实例

首先,创建一个Python模块运行你的命令脚本。可以任意起名,例如manage.py。
在你的manage.py文件中,必须有一个Manager实例。Manager类将追踪所有的在命令行中调用的命令和处理过程的调用运行情况:

from flask.ext.script import Manager

app = Flask(__name__)
# configure your app

manager = Manager(app)

if __name__ == "__main__":
    manager.run()

运行Flask-script命令

调用 manager.run()将启动Manager实例接收命令行中的命令。

现在运行manage.py会显示一个用法消息:

(flask)$ python manage.py
usage: manage.py [-?] {test,shell,db,runserver} ...

positional arguments:
  {test,shell,db,runserver}
    shell               Runs a Python shell inside Flask application context.
                        (在Flask应用上下文中运行Python shell)
    db                  Perform database migrations
    runserver           Runs the Flask development server i.e. app.run()
                        (运行Flask开发服务器: app.run())

optional arguments:
  -?, --help            show this help message and exit

shell命令用于在程序的上下文中启动Python shell会话。你可以使用这个会话中运行维护任务或测试,还可以调试异常。

启动WEB服务器

(flask)$ python manage.py runserver --help
usage: manage.py runserver [-?] [-h HOST] [-p PORT] [--threaded]
                           [--processes PROCESSES] [--passthrough-errors] [-d]
                           [-D] [-r] [-R]

Runs the Flask development server i.e. app.run()
(运行Flask开发服务器: app.run())

optional arguments:
  -?, --help            show this help message and exit
  -h HOST, --host HOST
  -p PORT, --port PORT
  --threaded
  --processes PROCESSES
  --passthrough-errors
  -d, --debug           enable the Werkzeug debugger (DO NOT use in production
                        code)
  -D, --no-debug        disable the Werkzeug debugger
  -r, --reload          monitor Python files for changes (not 100{‘const‘:
                        True, ‘help‘: ‘monitor Python files for changes (not
                        100% safe for production use)‘, ‘option_strings‘:
                        [‘-r‘, ‘--reload‘], ‘dest‘: ‘use_reloader‘,
                        ‘required‘: False, ‘nargs‘: 0, ‘choices‘: None,
                        ‘default‘: None, ‘prog‘: ‘manage.py runserver‘,
                        ‘container‘: <argparse._ArgumentGroup object at
                        0x7f6c48b20150>, ‘type‘: None, ‘metavar‘: None}afe for
                        production use)
  -R, --no-reload       do not monitor Python files for changes

--host参数是个很有用的选项,它告诉Web服务器在哪个网络接口上监听来自客户端的连接。
下述命令让Web服务器监听公共网络接口上的连接,允许同网中的其他计算机连接服务器:

(flask) $python manage.py runserver --host 0.0.0.0
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 * Restarting with stat

现在,Web服务器可使用http://a.b.c.d:5000/网络中的任一台电脑进行访问,其中“a.b.c.d”是服务器所在计算机的外网IP地址。

如果你使用Pycharm来编程,那么你需要设置Pycharm的启动项。Run->Edit Configurations,弹出如下窗口,并按照窗口内容设置。

链接:http://www.jianshu.com/p/ee500190dc97
來源:简书

时间: 2024-11-13 22:22:00

集成Python Shell的相关文章

工程脚本插件方案 - c集成Python基础篇(VC++嵌入Python)

序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中根据需求会拆分的更细.外部的表现形式就是一个核心动态库,带着一堆业务业务动态库.通过一个调度程序把这些链接起来,外加一堆配置文件,就形成一个完成的项目. 这种模式在一个团队开发中,工作职责比较容易划分.制定API接口后,开发工作基本可以并行实现,包括后期的功能测试(白盒.黑盒).不管工程使用什么语言

python shell 方向键不可用

问题:在python shell中按方向键出现类似:^[[C^[[D^[[C^[[C^[[D这样的字符 原因: python 没有安装readline模块 解决方案: pip install readline 安装完成后,并确认:readline.so 在site-packages 目录下

eclipse集成Python开发环境

话说最近听说 Python 很牛, 很强大, 至于究竟有多强大, 俺作为一枚菜鸟也就不好发表太多评价. 言归正传, 本文教你在eclipse中安装 Python 插件, 下面我们就跟着步骤一起做吧. 1. 首先安装window下Python环境: 下载地址: https://www.python.org/downloads/ 我安装的是: python-3.4.0.msi 1.1  点击下载好的文件按提示一步一步安装 1.2 检测 Python 是否安装成功: 1.2.1 "开始" -

eclipse中集成python开发环境

Eclipse简介 Eclipse是java开发最常用的IDE,功能强大,可以在MAC和Windos上运行,学习简单. pydev简介 一个功能强大的 Eclipse插件,用户可以完全利用 Eclipse 来进行 Python 应用程序的开发和调试.它提供了一些很好的功能,如:语法错误提示.源代码编辑助手.Quick Outline.Globals Browser.Hierarchy View.运行和调试等等.拥有诸多强大的功能,同时也非常易于使用. 详细步骤 1.安装python环境 下载地址

工程脚本插件方案 - c集成Python基础篇

工程脚本插件方案 - c集成Python基础篇 序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中根据需求会拆分的更细. 外部的表现形式就是一个核心动态库,带着一堆业务业务动态库.通过一个调度程序把这些链接起来,外加一堆配置文件,就形成一个完成的项目. 这种模式在一个团队开发中,工作职责比较容易划分.制定API接口后,开发工作基本可以并行实现,包括

windows下Python shell代码自动补全

Unix下实现如题功能用下面的代码: import rlcompleter, readline readline.parse_and_bind('tab: complete') 但readline不能在win中用,需要为windows编译好的pyreadline pip install pyreadline import rlcompleter, pyreadline a=Readline() a.parse_and_bind('tab: complete') windows下Python sh

jenkins集成python的单元测试

最近在研究jenkins的集成,然后想把自己写的python工具也用jenkins集成一下 废话少说,来看结构 sparking.py ''' @author: lianying ''' class Sparking: @staticmethod def get_num_of_zero(bits_num, key): cnt = 0 while key: cnt += 1 key &= key -1 return bits_num - cnt @staticmethod def get_num_

终端执行python shell的方法

假设有一个Py文件,放在下PycharmProjects/learn下,文件名是 myfile.py. 1.打开终端输入python3进入2.在shell下 输入import sys 回车3.输入 sys.path.append("D:\\python") 回车4.输入 import myfile 回车 5.搞定

使用IronPython集成Python和.NET

本文由 伯乐在线 - 艾凌风 翻译,Daetalus 校稿.未经许可,禁止转载!英文出处:www.informit.com.欢迎加入翻译组. 从两个优秀的世界各取所需,更高效的复用代码.想想就醉了,.NET和python融合了.“懒惰”的程序员们,还等什么? Jesse Smith为您展示如何两个语言来服务同一个.NET程序.你能集两家所长:Python和.NET一起工作,提供可重用的代码功能而不需要你为了一个环境重写代码库. 通过使用IronPython 运行时库,你可以让Python脚本运行