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框架。
学会使用框架,事半功倍。
更多推荐
Python网络编程(六)-利用Flask web框架开发python web程序
发布评论