← 返回首页
Python3基础教程(七十七)
发表时间:2022-05-10 19:52:58
使用Web框架

Flask是一个使用Python编写的轻量级Web应用框架,较其他类型框架更为灵活、轻便、安全且容易上手。

1.flask框架

Python 目前主要流行的web框架:flask、Django、Tornado等等。

flask 框架是一款基于 WSGI 的轻量级的web框架。flask 犹如耳熟能详的“麻雀虽小,五脏俱全”,因此flask具有简单可拓展的特点。

使用pip命令安装flask。

pip install flask

2.最简单的例子


from flask import Flask
app = Flask(__name__) # 实例app
@app.route("/") # 路由
def hello_world():
    return 'hello, world' # 返回值
if __name__ == '__main__':
    app.run(host='127.0.0.1',port=8080,debug = True)
    # 开启 debug 模式
    # app.run(host='127.0.0.1', port=8080)

运行结果:

* Serving Flask app 'flaskdemo1' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:8080 (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 117-293-058
127.0.0.1 - - [13/May/2022 10:45:57] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [13/May/2022 10:45:57] "GET / HTTP/1.1" 200 -

打开浏览器地址栏输入:http://localhost:8080, 执行默认的路由(/),返回视图为字符串"hello,world"。

下面实现一个超简单的登录注册效果。


from flask import Flask
from flask import request

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def home():
    return '<h1>主页</h1>'

@app.route('/signin', methods=['GET'])
def signin_form():
    return '''<form action="/signin" method="post">
              <p>用户名:<input name="username"></p>
              <p>密码:<input name="password" type="password"></p>
              <p><button type="submit">登录</button></p>
              </form>'''

@app.route('/signin', methods=['POST'])
def signin():
    # 需要从request对象读取表单内容:
    if request.form['username']=='admin' and request.form['password']=='123456':
        return '<h3>登录成功!</h3>'
    return '<h3>登录失败,请检查用户名或者密码是否正确。</h3>'

if __name__ == '__main__':
    app.run(host='127.0.0.1',port=8080,debug = True)

如果直接调用app.run();Flask自带的Server在端口5000上监听。

运行结果: 打开浏览器,输入首页地址http://localhost:8080/:

再在浏览器地址栏输入http://localhost:8080/signin,会显示登录表单:

输入预设的用户名admin和口令123456,登录成功:

小结: 有了Web框架,我们在编写Web应用时,注意力就从WSGI处理函数转移到URL+对应的处理函数,这样,编写Web App就更加简单了。在编写URL处理函数时,除了配置URL外,从HTTP请求拿到用户数据也是非常重要的。Web框架都提供了自己的API来实现这些功能。Flask通过request.form['name']来获取表单的内容。