前言
最近Packtpub联系到我,让我给他们发布在Falsk上的新书写书评,一本关于很流行的Python 框架的书。书名叫《Flask及时Web开发》Instant Flask Web Development,作者是Ron DuPlain. 我技术挑战的第三天,决定来学学Flask.在这篇博客里,首先来谈谈Flask框架基础,再提供一小段书评。我会在OpenShift上给出一个示例程序。Flask对我来说并不陌生,以前用它写过几个应用。这次就当温故知新。
给还不知道这个系列的小伙伴说明一下,我在进行一项30天学习30种技术的挑战,每天我会学一门新技术,再把所学写成博客,并介绍怎样使用新工具。有些技术不能在一天覆盖完,我会多花几天,分开讨论不同的章节。
我来给还不了解Flask的小伙伴介绍一下。Flask是一个轻量级的web应用框架,使用Python编写。这里的微框架并不像其他所说的所有的代码都放在一个文件里面。它实际是指简单的小型框架。我们可以从一个简单的文件架构开始。等熟悉了之后,可以使用它的模板和扩展功能。Flask并没有提关于文件架构的建议,不过待会我们可以来讨论一下这书里建议的文件架构。
用一段代码来直观感受一下吧:
from flask import Flask app = Flask(__name__) @app.route('/', defaults={'name':"Guest"}) @app.route('/' , methods=['GET']) def say_hello(name): return "Hello " + name if __name__ == "__main__": app.run(debug=True)
这是一段简单又直观的代码,来欣赏一下。我们来解析这段精短的代码:
有几点关于Flask值得了解的:
我学习Flask的原因:
现在我们来看看这本书的一些相关信息。
这本书很适合Flask初学者,且想写传统的基于RDBMS 的Web应用。
在开始之前我们需要在机器上安装Python和virtualenv. 我这里使用的Python是2.7的版本。按一下方式安装Flask.
$ mkdir schedulingapp $ cd schedulingapp/ $ virtualenv venv --python=python2.7 $ . venv/bin/activate $ pip install flask
以上命令中,我们先创建了一个示例程序的路径,激活了virtualenv. Virtualenv可以避免破坏python主程序。这使得我们可以对不同程序用不同版本的python.最后,我们安装了Flask.
命令 pip install flask 会安装最新稳定的Flask框架。
书里的示例应用是一个简单的预约程序。我们可以注册账号,登陆后创建,编辑,显示预约。执行一下命令在本机上运行程序。
$ git clone https://github.com/shekhargulati/instant-flask-web-development-book-app.git scheduleapp $ cd scheduleapp $ virtualenv venv --python=python2.7 $ . venv/bin/activate$ pip install -r requirements.txt $ python manage.py create_tables $ python manage.py runserver
执行后程序会在http://127.0.0.1:5000上运行,用户可以注册并登陆使用。
这样不错,不过我想把程序发布在云上。我会把它发布在OpenShift上。OpenShift是一个公开的,可扩展的开源服务平台。
在建这个应用之前,需要几点准备:
sudo gem install rhc
来安装rhc,如果你已经安装了,确保那是最新的。要更新rhc,输入
sudo gem update rhc.
想了解rhc command-line 工具,更多帮助参考https://openshift.redhat.com/community/developers/rhc-client-tools-install。
在OpenShift上发布应用,只需输入一下命令:
rhc create-app schedapp python-2.7 postgresql-9.2 --from-code=https://github.com/shekhargulati/schedapp-openshift.git
它会执行所有从创建程序,到设置公共DNS, 到创建git私有仓库,最后用Github仓库的代码发布应用。程序运行在http://schedapp-shekhargulati.rhcloud.com/
这就是今天的,继续给反馈吧!
原文:https://www.openshift.com/blogs/day-3-flask-instant-python-web-development-with-python-and-openshift