Python轻量Web框架Flask使用
Posted 功夫 熊猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python轻量Web框架Flask使用相关的知识,希望对你有一定的参考价值。
http://blog.csdn.net/jacman/article/details/49098819
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
以上是关于Python轻量Web框架Flask使用的主要内容,如果未能解决你的问题,请参考以下文章
Flask使用Python Web轻量级框架Flask实现登录功能