zoukankan      html  css  js  c++  java
  • 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安装

    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:deveclipsefeatures目录下,把plugins文件夹下的文件移到D:deveclipseplugins目录下 
    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

  • 相关阅读:
    [原创]基于asp.ent MVC的无刷新文件上传组件
    ATL 开发 Com 学习笔记
    杀毒软件—美杜杉(medusa)使用观后感1
    IIS gzip压缩
    常用网页播放器代码
    [转]安装AspNetMVC1RC2出错
    Asp.net 异步请求 IHttpAsyncHandler
    发几个小的测式软件
    [转]关于document.cookie的使用
    boost Serialization
  • 原文地址:https://www.cnblogs.com/xingzc/p/7896469.html
Copyright © 2011-2022 走看看