Python web 框架 Flask 入门 macOS 下实践记录

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 ,内容如下:

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  copy
  1. flask run --host=0.0.0.0  

静态文件

动态Web应用程序也需要静态文件。

这通常是放 CSS和JavaScript文件的地方。 只需在程序包中或在模块目录创建一个名为static的文件夹,它将在应用程序的/static处可用。 把一些静态文件放在这下面,然后通过 http://127.0.0.1:5000/static/index.html 这样就可以访问了。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值