Python輕量Web框架Flask使用


http://blog.csdn.net/jacman/article/details/49098819

 

目錄(?)[+]

  1. Flask安裝
  2. Python開發工具EclipsePyDev准備
  3. Flask項目框架搭建
  4. MVC模式實例開發
    1. 登錄實例
 

Python語言近些年越來越火,其特點是開發迅速,語法簡單,可移植等。本人就Python3基礎語法寫了Demo:https://github.com/tangthis/python3_demo,可以當作基礎教程和手冊查閱。

Python Web開發框架常用的包括Django,Flask,Tornado,Bottle,web.py,Quixote等。Django功能比較全面,比較重,相對來說,Flask更加輕巧,適合新手學習和上手。下面介紹下Flask基本使用,包括以下內容:

 

Flask安裝

1.安裝Python3   從Python的官方網站下載Python 3.4對應的64位安裝程序或32位安裝程序(網速慢的同學請移步國內鏡像)   64位:https://www.python.org/ftp/python/3.4.3/python-3.4.3.amd64.msi   32位:https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi   國內鏡像:http://pan.baidu.com/s/1sjqOkFF   安裝時,要選擇pip和Add python.exe to Path選項,如下圖   這里寫圖片描述 2.安裝Flask框架   打開命名行窗口,執行下面命令

  pip install flask   pip install flask-login   pip install flask-openid   pip install flask-sqlalchemy   pip install sqlalchemy-migrate   pip install flask-whooshalchemy   pip install flask-wtf   pip install flask-babel   pip install flup
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Python開發工具Eclipse+PyDev准備

1.下載PythonDev插件   http://sourceforge.net/projects/pydev/ 2.解壓pydev插件后,會發現有features、plugins兩個文件夾,然后把features文件夾下的文件移到D:\dev\eclipse\features目錄下,把plugins文件夾下的文件移到D:\dev\eclipse\plugins目錄下 3.重啟eclipse,在windows->preferences出現PyDev配置項,表示PyDev插件安裝成功 4.配置PyDev windows->preferences->PyDev->Interpreter - Python,New一個Python解釋器,填上解釋器名字和路徑,路徑選相應的python.exe 這里寫圖片描述 這里寫圖片描述 至此,PyDev配置完了

Flask項目框架搭建

1.新建Python項目 File->New->PyDev Project 2.新建項目結構文件夾 這里寫圖片描述 app–根目錄   static–靜態資源目錄,圖片,js,css等   templates–模板   _init_.py–初始化腳本   views.py–視圖控制器 tmp–臨時文件夾 run.py–項目啟動程序 3.通過Flask,創建神奇的Hello World程序 _init_.py創建Flask實例

from flask import flash app = Flask(__name__) from app import views
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

run.py創建啟動腳本

from app import app app.run(debug = True)
  • 1
  • 2
  • 1
  • 2

在app目錄下,創建views.py,加入下面代碼

from app import app @app.route("/") def index(): return "hello,world!"
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

4.啟動程序

python run.py
  • 1
  • 1

這里寫圖片描述

5.訪問http://localhost:5000/,返回hello,world

MVC模式實例開發

Controller使用介紹 攔截/index請求

@app.route("/index") def index(): return 'index'
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

攔截Post或者Get方法

@app.route("/index",methods = ['GET']) def index(): return 'index'
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

Restful支持

@app.route("/index/<username>") def index(username): return username
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
登錄實例

我們通過一個登錄的例子來展示完整的MVC流程 1.創建LoginForm登錄表單 app->新建forms.py,繼承Flask Form類

from flask.ext.wtf import Form from wtforms import TextField,PasswordField from wtforms.validators import Required,Length class LoginForm(Form): username= TextField('username',validators = [Required()]) password = PasswordField('username',validators = [Required()])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.登錄頁面login.html app->template->新建login.html

<h1>登錄</h1> <form action="" method="post" name="login"> <p> 請輸入用戶名:<br> {{form.username(size=30)}}<br> </p> <p> 請輸入用戶名:<br> {{form.password(size=30)}}<br> </p> <p><input type="submit" value="登錄"></p> </form>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3.登錄控制器Controller

from app import app @app.route('/login',methods = ['GET' , 'POST']) def login(): #接收參數 form = LoginForm() #提交驗證 if form.validate_on_submit(): #打印(ps:驗證邏輯自行補上) print('username:' + form.username.data + ',password:' + form.password.data) #返回到index.html頁面 return render_template('index.html',form = form) #未提交 return render_template('login.html',form = form) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4.登錄成功頁面index.html

<h1>Hi,{{form.username}}!</h1>
  • 1
  • 1

通過上面幾步,一個使用Flask開發的簡單的登錄邏輯完成,可以看出來開發效率之高。更多Flask內容,請下載github微博Weibo實例源碼 github源碼:https://github.com/tangthis/Weibo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM