Python輕量Web框架Flask使用
Python語言近些年越來越火,其特點是開發迅速,語法簡單,可移植等。本人就Python3基礎語法寫了Demo:https://github.com/tangthis/python3_demo,可以當作基礎教程和手冊查閱。
Python Web開發框架常用的包括Django,Flask,Tornado,Bottle,web.py,Quixote等。Django功能比較全面,比較重,相對來說,Flask更加輕巧,適合新手學習和上手。下面介紹下Flask基本使用,包括以下內容:
-
-
-
- Flask安裝
- Python開發工具EclipsePyDev準備
- Flask項目框架搭建
- MVC模式實例開發
- 登錄實例
-
-
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
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
run.py創建啟動腳本
from app import app
app.run(debug = True)
在app目錄下,創建views.py,加入下面代碼
from app import app
@app.route("/")
def index():
return "hello,world!"
4.啟動程序
python run.py
5.訪問http://localhost:5000/,返回hello,world
MVC模式實例開發
Controller使用介紹
攔截/index請求
@app.route("/index")
def index():
return ‘index‘
攔截Post或者Get方法
@app.route("/index",methods = [‘GET‘])
def index():
return ‘index‘
Restful支持
@app.route("/index/<username>")
def index(username):
return username
登錄實例
我們通過一個登錄的例子來展示完整的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()])
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>
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)
4.登錄成功頁面index.html
<h1>Hi,{{form.username}}!</h1>
通過上面幾步,一個使用Flask開發的簡單的登錄邏輯完成,可以看出來開發效率之高。更多Flask內容,請下載github微博Weibo實例源碼
github源碼:https://github.com/tangthis/Weibo
Python輕量Web框架Flask使用