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选项,如下图
  Python轻量Web框架Flask使用_第1张图片
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
Python轻量Web框架Flask使用_第2张图片
Python轻量Web框架Flask使用_第3张图片
至此,PyDev配置完了

Flask项目框架搭建

1.新建Python项目
File->New->PyDev Project
2.新建项目结构文件夹
Python轻量Web框架Flask使用_第4张图片
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/")
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使用_第5张图片

你可能感兴趣的:(python)