一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比

  1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架

  2.Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架

  3.Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架

Django 通常用于大型Web应用由于内置组件足够强大所以使用Django开发可以一气呵成

Tornado 通常用于API后端应用,游戏服务后台,其内部实现的异步非阻塞真是稳得一批

Flask 通常应用于小型应用和快速构建应用,其强大的三方库,足以支撑一个大型的Web应用

Django 优点是大而全,缺点也就暴露出来了,这么多的资源一次性全部加载,肯定会造成一部分的资源浪费

Tornado 优点是异步,缺点是干净,连个Session都不支持

  Flask 优点是精悍简单,缺点是稳定性差(因为是使用大量的第三方库,所以当Flask更新的时候,库也要更新,但是库不是Flask公司的,所以会有不兼容的现象.)

二 .  初识Flask

1 . 安装Flask

 pip install Flask 

2 . 六行代码写出一个页面

  from flask import Flask       # 导入Flask类

  app = Flask(__name__)        # 实例化Flask对象app

  @app.route("/")              # app中的route装饰器
  def index(): # 视图函数
    return "hello world"   app.run() # 启动Flask web服务

  启动项目,控制台如下  :

 

  使用浏览器访问上面的地址,效果如下图 :

  

  至此,你已经实现了flask的第一个程序 !

3 . Flask中的Response "三剑客"

  我们知道 Django中的response有3中形式 ( HttpResponse, redirect, render ), 对比Django,来看看Flask有哪些返回形式.

  1) . 返回 HttpRespomse 对象

  @app.route("/home")
  def home():
    return "hello world" # 相当于django中return HttpResponse("")

  2) . 重定向 ( redirect )

  from flask import redirect          # 导入flask中的redirect

  @app.route("/home")
  def home():
    return redirect("/login") # 重定向至"/login"路径

    当访问"/home"这个路径的时候,视图函数home会重定向到路径"/login" 并会触发"/login"对应的视图函数。

  3)返回模板页面(render_template)

  from flask import render_template        # 导入flask中的render_template

  @app.route("/home")
  def home():
    return render_template("home.html") # 渲染模板home.html并返回

    Flask中的render_template相当于django中的render

    注意:如果要使用render_template 返回渲染的模板,请在项目的主目录中加入一个目录 templates,如下图:

              

    否则会遇到jinja2的异常:

      

4 . flask的 "小儿子"

  1) . 返回标准的json字符串

  from flask importjsonify

  @app.route("/json")
  def jsons():
    d = {"name":"jinjiaodawangba"}
    return jsonify(d)

  返回json字符串,并且会在响应头中加Content-Type:application/json,即告诉浏览器数据是json字符串,浏览器收到后会自动进行反系列化,而使用json.dumps()则不会加响应头。

   2) . 打开文件并返回文件内容(自动识别文件格式)
  from flask importsend_file

  @app.route("/file")
  def file():
    return send_file("01.mp4")

    自动识别文件类型,即在返回文件内容时加一个响应头Content-Type:文件类型。

 
 

Flask简介的更多相关文章

  1. Inside Flask - Flask 简介

    Inside Flask - Flask 简介 前言 Flask 的设计目标是实现一个 wsgi 的微框架,其核心代码保持简单和可扩展性,很容易学习.对于有一定经验初学者而言,跟着例子和一些书的代码来 ...

  2. Flask简介,安装,demo,快速入门

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

  3. Flask简介之简单应用

    Flask 0.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收ht ...

  4. Flask简介及使用

    目录 Flask简介 wsgiref wsgiref简单应用 两个依赖 werkzeug Jinja2 简单使用 安装 flask快速使用 Django与Flask返回值的对比 Flask简介 ​ F ...

  5. Flask框架(一)—— Flask简介

    Flask框架(一)—— Flask简介 目录 Flask框架介绍 一.Flask简介 二.flask安装与使用 1.安装 2.使用 3.简单案例——flask实现用户登录 Flask框架介绍 一.F ...

  6. Flask基础-01.Flask简介

    Flask简介 Web应用程序作用 Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档. 关于Web框架 1. 什么是Web框架? 1. 已经封装好了一段代码,协助程序 ...

  7. day92:flask:flask简介&基本运行&路由&HTTP请求和响应

    目录 1.Flask简介 2.关于使用flask之前的准备 3.flask的基本运行 4.flask加载配置 5.传递路由参数(没有限定类型) 6.传递路由参数(通过路由转换器限定路由参数的类型) 7 ...

  8. Flask简介&入门

    1 了解框架 Flask作为Web框架,它的作用主要是为了开发Web应用程序.那么我们首先来了解下Web应用程序.Web应用程序 (World Wide Web)诞生最初的目的,是为了利用互联网交流工 ...

  9. Flask简介与启动服务器

    Flask 一.简介 官方文档:http://flask.pocoo.org/ http://www.pythondoc.com/flask/index.html(中文) 1.概述 flask是一个非 ...

  10. 1,flask简介

    一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不 ...

随机推荐

  1. 《C++编程思想》第二章 数 据 抽 象(原书代码+习题+答案)

    相关代码例如以下: 1. <span style="font-size:18px;">/*声明与定义的差别*/ #include <iostream> us ...

  2. 2016.10.19 intelliJ的基本操作

    参考大部分来自:IntelliJ IDEA 13试用手记(附详细截图) 用eclipse实在用的有点心累了.所以准备转战intelliJ.   一.下载安装 官网地址:http://www.jetbr ...

  3. java Excel导入、自适应版本、将Excel转成List<map>对象

    转载:http://blog.csdn.net/u012662357/article/details/58593020 最近在web开发中遇到excel批量导入,在网上搜了下很少有将excel直接转成 ...

  4. jsp中jquery用法一步刷新 验证用户名是否存在

    <script type="text/javascript"> /* $(document).ready(function(){ var id="ha&quo ...

  5. MongoDB基本文件操作

    MongoDB中主要的文件操作有put.get.list.search几种.能够非常方便地进行文件存储于查找,下面是一个简单的演示样例. 1.利用dd命令生成要求大小随机文件  2.使用put命令将生 ...

  6. 搭建局域网maven仓库

    第一步: 下载Nexus http://nexus.sonatype.org/downloads/下载最新版本 解压缩到任意目录,我的直接解压到了E盘---------->E:\nexus-2. ...

  7. 使用JDK中的类URL访问HDFS(来自吴超Hadoop)

    package hdfs; import java.io.InputStream; import java.net.URL; import org.apache.hadoop.fs.FsUrlStre ...

  8. SAS学习经验总结分享:篇一—数据的读取

    第一篇:BASE SAS分为数据步的作用及生成数据集的方式 我是学经济相关专业毕业的,从事数据分析工作近一年,之前一直在用EXCEL,自认为EXCEL掌握的还不错. 今年5月份听说了SAS,便开始学习 ...

  9. PHP的对象和引用

    PHP 的引用是别名,就是两个不同的变量名字指向相同的内容.在 PHP 5,一个对象变量已经不再保存整个对象的值.只是保存一个标识符来访问真正的对象内容. 当对象作为参数传递,作为结果返回,或者赋值给 ...

  10. ROR部署到Heroku出现Application Error和code=H10 desc=&quot;App crashed“问题

    1.问题发现之前的准备 在读<Learn Python In Hard Way>的时候,发现作者谈到一个非常有趣的事情,在做一些有趣的事情之前做的无聊的事情叫做yak shaving,牦牛 ...