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

Python轻量Web框架Flask使用的更多相关文章

  1. 初识python轻量web框架flask

    1.使用pip安装Python包 大多数Python包都使用pip实用工具安装,使用pyvenv创建的虚拟环境会自动安装pip. 1.使用pip安装Flask(其它Python包同理) pip ins ...

  2. Python超级明星WEB框架Flask

    Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模 ...

  3. Python学习之web框架 Flask

    一.通过PIP 安装Flask 1.1 Windows环境安装pip A.首先PIP进入官网(https://pypi.python.org/pypi/pip)下载gz包 B.对gz压缩包进行解压,解 ...

  4. golang 实现轻量web框架

    经常看到很多同学在打算使用go做开发的时候会问用什么http框架比较好.其实go的 http package 非常强大,对于一般的 http rest api 开发,完全可以不用框架就可以实现想要的功 ...

  5. 用Python手把手教你搭建一个web框架-flask微框架!

    在之前的文章当中,小编已经教过大家怎么搭建一个Django框架,今天我们来探索另外的一种框架的搭建,这个框架就是web框架-flask微框架啦!首先我们带着以下的几个问题来阅读本文: 1.flask是 ...

  6. python web框架Flask——csrf攻击

    CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click ...

  7. 动手打造轻量web服务器(二)路由

    tomcat启动慢?自己动手打造轻量web服务器(一) 上篇讲了怎么做一个最简单的web服务器,这篇就是在上篇加上URL路由功能(什么是路由?) 首先,根据http获得请求行 val scanner ...

  8. python三大主流web框架之Django安装、项目搭建

    这一篇我们将迎来python强大的web框架Django,相信大家都已经不陌生,本篇将介绍Django的安装及基础项目搭建,大神略过~ Django是需要我们手动pip安装的,首先我们来安装Djang ...

  9. pthon web框架flask(一)

    pthon web框架优劣: 知乎上有一个讨论Python 有哪些好的 Web 框架?,从这个讨论中最后我选择了flask,原因是: Django,流行但是笨重,还麻烦,人生苦短,肯定不选 web.p ...

随机推荐

  1. 15.6.6-sql字符串组装技巧

    组装sql字符串,丢给exec sp_executesql执行 exec sp_executesql N'exec sp_executesql N''select * from TESTTEST.db ...

  2. Photoshop操作指南

    缩放工具(Z) 之后涉及到移动功能,暂时切换到小抓手工具. 图1 图2 切换到:暂时切换到:当按住空格键的时候,显示小抓手工具.松开之后,又回到了之前的显示上. 满画布显示当前画面:ctrl+0(数字 ...

  3. easyui plugin——etreegrid:CRUD Treegrid

    昨天写了一个ko+easyui的同样的实现,感觉写的太乱,用起来十分麻烦,于是今天照着edatagrid,写了一个etreegrid,这样再用ko绑定就方便多了. 使用很简单,$(tableId).e ...

  4. 部署tomcat在windows服务器下,将tomcat控制台日志记录到日志文件中

    在Linux系统中,Tomcat 启动后默认将很多信息都写入到 catalina.out 文件中,我们可以通过tail  -f  catalina.out 来跟踪Tomcat 和相关应用运行的情况. ...

  5. AppScan学习笔记

    AppScan学习笔记 http://www.docin.com/p-777386896.html

  6. [LeetCode] Range Sum Query 2D - Immutable

    Very similar to Range Sum Query - Immutable, but we now need to compute a 2d accunulated-sum. In fac ...

  7. 学习使用:before和:after伪元素

    如果你一直密切关注着各种网页设计的博客,你可能已经注意到了:before和:after伪元素已经在前端开发中获得了相当多的关注.特别是在Nicolas Gallagher的博客中,后期运用了很多伪类元 ...

  8. 设置zookeeper jvm内存

    看了你的问题, 我还特意的查看了ZooKeeper的启动脚本代码.ZooKeeper启动脚本没有加任何参数,也就是使用jvm默认的. 如果想要加大ZooKeeper的JVM使用内存.可以在更改{ZK_ ...

  9. iOS开源项目教程大合集

    UI篇 1.MMDrawerController http://www.cnblogs.com/shangdahao/p/3142204.html 2.SVPullToRefresh http://w ...

  10. HTTP 错误 500.19 - Internal Server Error(Windows Server 2012)

    错误页面: 解决办法:重新添加角色和功能web服务器(IIS),选择应用程序开发下的相关.net4.5的选项