Flask诞生于2010年, Armin Ronacher的一个愚人节玩笑。不过如今已是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。html
Flask自己至关于一个内核,其余几乎全部的功能都要用到扩展,都须要用第三方的扩展来实现。用 extension 增长其余功能。Flask没有默认使用的数据库、窗体验证工具。你能够选择MySQL,也能够用NoSQL。其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2 .前端
Python最出名的框架要数Django,此外还有Flask、Tornado等框架。虽然Flask不是最出名的框架,可是Flask应该算是最灵活的框架之一,这也是Flask受到广大开发者喜好的缘由。python
static
存放静态文件web
templates
存放模板文件数据库
app.py
程序入口flask
# -*- coding utf-8 -*- # coding: utf-8 #导入相关库 from flask import Flask,render_template,request,flash #启动一个Flask实例 app = Flask(__name__) #设置secret_key,信息加密设置 app.secret_key="sarafsdsa" #装饰器定义Flask路由,及请求方式 @app.route('/',methods=['GET','POST']) def index(): url_str='www.qwe123112312sd.com' my_int = 2312412 my_list = [1,2,3,4,5,6,7,8,9] my_dict = { 'name': 'hello world', 'domain': '1231234323' } if request.method == "POST": username = request.form.get('username') #接收表单信息 password = request.form.get('password') if not all([username,password]): #简单判断当前接收数据是否合法 flash(u"参数不完整") #消息闪现 else: flash('username: %s password: %s' %(username,password)) #定义发送到index.html的参数,变量名称最好一致 return render_template("index.html",url_str=url_str,my_int=my_int,my_list=my_list,my_dict=my_dict) #<>内定义传参,限定为int类型 @app.route('/orders/<int:order_id>') def get_orders_id(order_id): return 'order_id: %s' %order_id if __name__ == '__main__': app.run(debug=True) #开启debug模式方便调试
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 字符串:{{ url_str }}<br> 整型:{{ my_int }}<br> 列表:{{ my_list }}<br> 列表取值1:{{ my_list[2] }}<br> 列表取值2:{{ my_list.2 }}<br> 字典取值:<br> {{ my_dict }}<br> {{ my_dict['name'] }}<br> {{ my_dict.name }}<br> {{ my_dict['domain'] }}<br> {{ my_dict.domain }}<br> {# for循环遍历#} {% for my in my_list %} {{ my }}<br> {% endfor %} <br> {# for循环遍历加if判断#} {% for my in my_list %} {% if my > 3 %} {{ my }}<br> {% endif %} {% endfor %} <form method="POST"> <lable>用户名:</lable><input type="text" name="username"><br> <lable>密码:</lable><input type="password" name="password"><br> <lable><input type="submit" value="提交"></lable><br> {# 使用遍历获取返回的flash消息 #} {% for messages in get_flashed_messages() %} {{ messages }} {% endfor %} </form> </body> </html>