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>