Python网络编程(六)-利用Flask web框架开发python web程序

1. Flask简介:

在前面介绍了一些基本的网络编程和爬虫python库后,终于可以开始接触python网络编程框架了。

Flask是一个微型的Python开发的 Web 框架,特别说明,作为一个微型web框架,也被称为“microframework”,麻雀虽小,五脏俱全,Flask可扩展性很强。Flask基于Werkzeug WSGI工具箱和Jinja2 模板引擎,Flask使用BSD授权。

Flask没有默认使用的数据库、窗体验证工具。然而,Flask用extension增加其他功能,保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。

2. Flask使用举例:

例子:使用flask实现下面两个业务:

(1). 返回Hello;

(2). 利用Flask实现登录功能。

代码如下:

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
###test ok:
#python app_web.py
#http://localhost:5000
#http://localhost:5000/signin
###
from flask import Flask
from flask import request

app = Flask(__name__) #创建一个该类的实例

@app.route('/', methods=['GET', 'POST']) #使用 route() 装饰器来告诉 Flask 触发函数的 URL
def home():
    return '<h1>Home</h1>'

@app.route('/signin', methods=['GET']) #使用 route() 装饰器来告诉 Flask 触发函数的 URL
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">Sign In</button></p>
              </form>'''

@app.route('/signin', methods=['POST'])
def signin():
    if request.form['username']=='admin' and request.form['password']=='password':
        return '<h3>Hello, admin!</h3>'
    return '<h3>Bad username or password.</h3>'

if __name__ == '__main__':
    app.run()

测试方式和测试结果:

首先,运行python程序:

aaaaa:chaper user1$ python3 app_web.py 
 * Serving Flask app "app_web" (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: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [22/Feb/2021 07:17:05] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [22/Feb/2021 07:19:25] "GET /signin HTTP/1.1" 200 -
127.0.0.1 - - [22/Feb/2021 07:20:21] "POST /signin HTTP/1.1" 200 -

然后,在网页端打开如下url:

http://localhost:5000/
http://localhost:5000/signin

结果如下:

登录测试接口如下:

一个简单的web程序就完成了,flask用起来很方便,但是,从代码也可以看出来,需要和html语句结合,才能发挥强大的功能。

如果写一下复杂的业务,Flask未必是最好的选择,大家可以试一试django框架,一个大而全,航空母舰级别的web框架

猜你喜欢

转载自blog.csdn.net/liranke/article/details/113927810