Python web 框架 Flask 入门 macOS 下实践记录
2017-11-06 20:06
956 查看
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 ,使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。最新版本为0.12。
学习环境
macOS sierra 10.12.3
Python 2.7.10
pip 9.0.1
Flask-0.12.2
安装Flask
Linux或mac下使用以下命令安装:
sudo pip install Flask输出如下:
$ sudo pip install Flask
Password:
The directory '/Users/aven/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/aven/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting Flask
Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB)
100% |████████████████████████████████| 92kB 90kB/s
Collecting itsdangerous>=0.21 (from Flask)
Downloading itsdangerous-0.24.tar.gz (46kB)
100% |████████████████████████████████| 51kB 24kB/s
Collecting Werkzeug>=0.7 (from Flask)
Downloading Werkzeug-0.12.2-py2.py3-none-any.whl (312kB)
100% |████████████████████████████████| 317kB 8.0kB/s
Collecting Jinja2>=2.4 (from Flask)
Downloading Jinja2-2.9.6-py2.py3-none-any.whl (340kB)
100% |████████████████████████████████| 348kB 8.8kB/s
Collecting click>=2.0 (from Flask)
Downloading click-6.7-py2.py3-none-any.whl (71kB)
100% |████████████████████████████████| 71kB 11kB/s
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->Flask)
Downloading MarkupSafe-1.0.tar.gz
Installing collected packages: itsdangerous, Werkzeug, MarkupSafe, Jinja2, click, Flask
Running setup.py install for itsdangerous ... done
Running setup.py install for MarkupSafe ... done
Successfully installed Flask-0.12.2 Jinja2-2.9.6 MarkupSafe-1.0 Werkzeug-0.12.2 click-6.7 itsdangerous-0.24执行 flask 查看是否安装成功:
$ flask
Usage: flask [OPTIONS] COMMAND [ARGS]...
This shell command acts as general utility script for Flask applications.
It loads the application configured (through the FLASK_APP environment
variable) and then provides commands either provided by the application or
Flask itself.
The most useful commands are the "run" and "shell" command.
Example usage:
$ export FLASK_APP=hello.py
$ export FLASK_DEBUG=1
$ flask run
Options:
--version Show the flask version
--help Show this message and exit.
Commands:
run Runs a development server.
shell Runs a shell in the app context.完了,这就装完了,比 Django 好,环境变量都不需要配置。
快速入门 quick start
随便找个目录吧
创建一个文件:hello.py ,内容如下:
* Forcing debug mode on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 532-211-424
127.0.0.1 - - [03/Nov/2017 11:23:03] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 11:23:04] "GET /favicon.ico HTTP/1.1" 404 -
* Detected change in '/Users/aven/Documents/flask/hello.py', reloading
* Restarting with stat
* Debugger is active!
* Debugger PIN: 532-211-424
127.0.0.1 - - [03/Nov/2017 11:27:26] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 11:27:28] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 11:45:16] "GET /hello HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 11:46:12] "GET /user/%E5%BE%AEwx%E7%AC%91 HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 13:33:14] "GET /user/%E5%BE%AEwx%E7%AC%91a HTTP/1.1" 200 -命令说明:1、设置APP 的启动文件;2、设置为调试模式启动;3、运行;如果你使用Windows操作系统,需要将 export 替换为 set
启动成功后,我们可以根据提示访问:http://127.0.0.1:5000/如果想退出,按 CTRL + C 就可以了。访问:http://127.0.0.1:5000/,我们会看到输出:Index Page访问:http://127.0.0.1:5000/hello,会看到输出:Hello, World访问:http://127.0.0.1:5000/user/%E5%BE%AEwx%E7%AC%91, 会看到输出:User 微wx笑而访问:http://127.0.0.1:5000/buy,我们会收到提示:方法不支持。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。最新版本为0.12。
学习环境
macOS sierra 10.12.3
Python 2.7.10
pip 9.0.1
Flask-0.12.2
安装Flask
Linux或mac下使用以下命令安装:
sudo pip install Flask输出如下:
$ sudo pip install Flask
Password:
The directory '/Users/aven/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/aven/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting Flask
Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB)
100% |████████████████████████████████| 92kB 90kB/s
Collecting itsdangerous>=0.21 (from Flask)
Downloading itsdangerous-0.24.tar.gz (46kB)
100% |████████████████████████████████| 51kB 24kB/s
Collecting Werkzeug>=0.7 (from Flask)
Downloading Werkzeug-0.12.2-py2.py3-none-any.whl (312kB)
100% |████████████████████████████████| 317kB 8.0kB/s
Collecting Jinja2>=2.4 (from Flask)
Downloading Jinja2-2.9.6-py2.py3-none-any.whl (340kB)
100% |████████████████████████████████| 348kB 8.8kB/s
Collecting click>=2.0 (from Flask)
Downloading click-6.7-py2.py3-none-any.whl (71kB)
100% |████████████████████████████████| 71kB 11kB/s
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->Flask)
Downloading MarkupSafe-1.0.tar.gz
Installing collected packages: itsdangerous, Werkzeug, MarkupSafe, Jinja2, click, Flask
Running setup.py install for itsdangerous ... done
Running setup.py install for MarkupSafe ... done
Successfully installed Flask-0.12.2 Jinja2-2.9.6 MarkupSafe-1.0 Werkzeug-0.12.2 click-6.7 itsdangerous-0.24执行 flask 查看是否安装成功:
$ flask
Usage: flask [OPTIONS] COMMAND [ARGS]...
This shell command acts as general utility script for Flask applications.
It loads the application configured (through the FLASK_APP environment
variable) and then provides commands either provided by the application or
Flask itself.
The most useful commands are the "run" and "shell" command.
Example usage:
$ export FLASK_APP=hello.py
$ export FLASK_DEBUG=1
$ flask run
Options:
--version Show the flask version
--help Show this message and exit.
Commands:
run Runs a development server.
shell Runs a shell in the app context.完了,这就装完了,比 Django 好,环境变量都不需要配置。
快速入门 quick start
随便找个目录吧
创建一个文件:hello.py ,内容如下:
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Index Page' @app.route('/hello') def hello(): return 'Hello, World' @app.route('/user/<username>') def show_user_profile(username): # show the user profile for that user return 'User %s' % username @app.route('/post/<int:post_id>') def show_post(post_id): # show the post with the given id, the id is an integer return 'Post %d' % post_id @app.route('/buy', methods=['POST']) def buy(): stripe_token = request.form['stripeToken'] if __name__ == "__main__": app.run()打开终端,切换到文件所在的目录,执行以下命令启动服务:
$ export FLASK_APP=hello.py $ export FLASK_DEBUG=1 $ flask run打开浏览器访问吧:http://127.0.0.1:5000/ * Serving Flask app "hello"
* Forcing debug mode on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 532-211-424
127.0.0.1 - - [03/Nov/2017 11:23:03] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 11:23:04] "GET /favicon.ico HTTP/1.1" 404 -
* Detected change in '/Users/aven/Documents/flask/hello.py', reloading
* Restarting with stat
* Debugger is active!
* Debugger PIN: 532-211-424
127.0.0.1 - - [03/Nov/2017 11:27:26] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 11:27:28] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 11:45:16] "GET /hello HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 11:46:12] "GET /user/%E5%BE%AEwx%E7%AC%91 HTTP/1.1" 200 -
127.0.0.1 - - [03/Nov/2017 13:33:14] "GET /user/%E5%BE%AEwx%E7%AC%91a HTTP/1.1" 200 -命令说明:1、设置APP 的启动文件;2、设置为调试模式启动;3、运行;如果你使用Windows操作系统,需要将 export 替换为 set
启动成功后,我们可以根据提示访问:http://127.0.0.1:5000/如果想退出,按 CTRL + C 就可以了。访问:http://127.0.0.1:5000/,我们会看到输出:Index Page访问:http://127.0.0.1:5000/hello,会看到输出:Hello, World访问:http://127.0.0.1:5000/user/%E5%BE%AEwx%E7%AC%91, 会看到输出:User 微wx笑而访问:http://127.0.0.1:5000/buy,我们会收到提示:方法不支持。
让你的服务器对外可见
按上面运行服务器的方式,您将注意到服务器只能从您自己的计算机访问,而不能从网络中的任何其他计算机访问。这是默认值,因为在调试模式下,应用程序的用户可以在计算机上执行任意的Python代码。如果禁用调试器或信任网络上的用户,则可以通过在命令行中添加--host = 0.0.0.0来使服务器公开可用:[python] view plain copyflask run --host=0.0.0.0静态文件
动态Web应用程序也需要静态文件。这通常是放 CSS和JavaScript文件的地方。只需在程序包中或在模块目录创建一个名为static的文件夹,它将在应用程序的/static处可用。把一些静态文件放在这下面,然后通过 http://127.0.0.1:5000/static/index.html 这样就可以访问了。相关文章推荐
- Python Web框架Flask下网站开发入门实例
- Python Web框架Flask下网站开发入门实例
- Python Web 框架 Flask 入门示例
- Python Web框架Flask信号机制(signals)介绍
- Python Flask Web框架(八)
- [python]flask框架快速入门
- Django vs Flask vs Pyramid: 如何去选择一个Python Web框架
- python web 框架 Flask 问题处理
- python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
- [Link]选择一个 Python Web 框架:Django vs Flask vs Pyramid
- 在python的WEB框架Flask中使用多个配置文件的解决方法
- Python Web框架Flask中使用新浪SAE云存储实例
- Python Flask Web框架(一)
- Python Flask Web框架(九)
- Python的web框架之Django入门(三)
- Ubuntu下使用Python+flask+MySQL的架构搭建Web框架
- python web开发之flask框架学习(2) 加载模版
- 在python的WEB框架Flask中使用多个配置文件的解决方法
- Python Web框架Flask中使用百度云存储BCS实例
- 技术文章 | Python Web框架:Django vs Flask vs Pyramid