通过上篇初步了解python的三大框架之一Flask。
补充:
列出pip已经安装好的模块:
pip freeze
Flask框架下常用的扩展包:
Flask-SQLalchemy:操作数据库;
Flask-script:插入脚本;
Flask-migrate:管理迁移数据库;
Flask-Session:Session存储方式指定;
Flask-WTF:表单;
Flask-Mail:邮件;
Flask-Bable:提供国际化和本地化支持,翻译;
Flask-Login:认证用户状态;
Flask-OpenID:认证;
Flask-RESTful:开发REST API的工具;
Flask-Bootstrap:集成前端Twitter Bootstrap框架;
Flask-Moment:本地化日期和时间;
Flask-Admin:简单而可扩展的管理接口的框架
代码如下:
# -*- encoding: utf-8 -*- #导包 #导包 导入重定向模块 #url_for是简易寻址跳转 from flask import Flask #建立flask对象 from flask import redirect,url_for,jsonify #使用flask路由器,制定网址和控制器 app = Flask(__name__) #方法1 @app.route('/') def index(): return "指定的网址里想输出的内容" #方法2 #给网址增加参数功能使用<变量名>,路由方法要和路由定义的参数同步 #方法一中我们还可以加入参数 加入参数时用'<>' #注意:①是"/"分割 不是"," #②我们加入几个参数,就要传进几个参数 用","相隔 @app.route('/hello/<id>/<name>') def hello(id,name): return "传入的第一个参数是%s,第二个参数是%s"%(id,name) #使用重定向模块来进行跳转,在重定向跳转首先要导入一个包:redirect #在这里你传的什么 在你网址的末尾就加入什么 @app.route("/1") def reule(): #注意:书写的格式,后边的"/"不能丢 return redirect('http://127.0.0.1:5000/') #使用url_for方法来实现简易的站内跳转,参数指定路由方法名称 @app.route('/2') def reurl_in(): #return 返回 url_for后边是方法名 不是网址 return redirect(url_for('index')) #使用jsonify模块让网页直接显示json数据 @app.route('/json') def re_json(): #定义好数据格式 json_dict={'id':10,'title':'flask的应用','content':'flask的json格式'} #使用jsonify来将定义好的数据转换成json格式,并返回给前端 #return 返回的是二进制码,需要解码 return jsonify(json_dict)
下面来说说两个前置访问和两个后置访问:
#在第一次请求之前调用的方法 #前置访问① #这里的第一次是指启动服务后的第一次访问 以后不会重复 除非重启服务 可以刷新几次和重启服务试试 @app.before_first_request def before_first_request(): print('这是第一次请求之前调用') #前置访问② #在每一次请求之前调用 #每请求一次就调用显示一次 你可以多刷新几次试一试 @app.before_request def before_request(): print('每一次调用这个方法')
下面这是两个后置访问,特殊的是它们带参数
#后置访问① #在请求之后调用的发方法,调用之后必须传响应参数,然后将响应内容返回 @app.after_request def after_request(response): print('在请求之后,调用这个方法') return response #这里一定要记住返回参数 #后置访问② #在请求之后,调用服务器出现的错误信息 #在发生错误 意外情况 的时候抛出错误 方便查找 @app.teardown_request def teardown_request(e): print('服务器出现的错误是%s'% str(e)) #这里你要把抛出的错误转换成字符串显示出来
# 使用程序入口将flask应用启动,port参数 if __name__ == "__main__": app.run(debug=True,port=5000) #这里指定进入debug模式,默认为False 这里设置为True #poot=5000 为防止端口重复 我们可以设置没有用过的端口来搭建自己的服务,debug=True这样在随意修改网页信息时就不用重新启动服务了