Flask

Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。

Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL

其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。

 

Flask 是python三大web框架之一,比之其他两大框架django和tornado而言,它更加的轻量化,开发效率更高,是入门web框架的首选。

 

同类的python框架还有 bottle  web.py

Flask常用扩展包:

Flask-SQLalchemy:操作数据库;

Flask-script:插入脚本;

Flask-migrate:管理迁移数据库;

Flask-Session:Session存储方式指定;

Flask-WTF:表单;

Flask-Mail:邮件;

Flask-Bable:提供国际化和本地化支持,翻译;

Flask-Login:认证用户状态;

Flask-OpenID:认证;

Flask-RESTful:开发REST API的工具;

Flask-Bootstrap:集成前端Twitter Bootstrap框架;

Flask-Moment:本地化日期和时间;

Flask-Admin:简单而可扩展的管理接口的框架

 

Flask有两大核心:Werkzeug和Jinja2

   - Werkzeug实现路由、调试和Web服务器网关接口

   - Jinja2实现了模板。

Werkzeug是一个遵循WSGI协议的python函数库

   - 其内部实现了很多Web框架底层的东西,比如request和response对象;

   - 与WSGI规范的兼容;支持Unicode

   - 支持基本的会话管理和签名Cookie

   - 集成URL请求路由等。

Werkzeug库的 routing 模块负责实现 URL 解析。不同的 URL 对应不同的视图函数,routing模块会对请求信息的URL进行解析,匹配到URL对应的视图函数,执行该函数以此生成一个响应信息。

routing模块内部有:

Rule

   用来构造不同的URL模式的对象,路由URL规则

安装flask

pip install Flask

列出pip已经安装好的模块

pip freeze

三种导入配置文件的方式:

# 配置对象,里面定义需要给 APP 添加的一系列配置

class Config(object):

DEBUG = True

# 从配置对象中加载配置

app.config.from_object(Config)

# 从配置文件中加载配置

app.config.from_pyfile('config.ini')

#由环境变量里面来加载配置

app.config.from_envvar('app_config')

路由配置,指定methods方法,返回json数据

@app.route('/demo4',methods=['GET', 'POST'])

def demo4():

    json_dict = {

        "user_id": 10,

        "user_name": "laowang"

    }

return jsonify(json_dict)

统一捕获

#统一捕获异常

@app.errorhandler(500)

def internal_server_error(e):

return '服务器搬家了'

钩子的四大方法

# 在第一次请求之前调用,可以在此方法内部做一些初始化操作

@app.before_first_request

def before_first_request():

    print("before_first_request")

# 在每一次请求之前调用,这时候已经有请求了,可能在这个方法里面做请求的校验

# 如果请求的校验不成功,可以直接在此方法中进行响应,直接return之后那么就不会执行视图函数

@app.before_request

def before_request():

    print("before_request")

# 在执行完视图函数之后会调用,并且会把视图函数所生成的响应传入,可以在此方法中对响应做最后一步统一的处理

@app.after_request

def after_request(response):

    print("after_request")

    return response

# 请每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息

@app.teardown_request

def teardown_request(e):

    print("teardown_request")

调试接口的两种方法

1 编写python脚本进行调试

2 使用postman软件进行调试

虚拟环境概念

为了给项目提供独立的安装环境,防止多项目依赖冲突

虚拟环境安装

pip install virtualenv

进入项目安装虚拟目录

virtualenv venv

进入命令目录

cd ./venv/Scripts

激活虚拟环境

activate

离开虚拟环境

deactivate

flask基本介绍及虚拟环境的更多相关文章

  1. Flask初学者:Python虚拟环境,Flask安装,helloworld,run方法

    一.Python虚拟环境: 作用:使Python框架的不同版本可以在同一台电脑上运行.如果在电脑上全局(C盘或者其他目录)安装Flask(或其他Python框架),当你使用其他版本的Flask(比如有 ...

  2. 面试简历书写、Flask框架介绍与快速使用、Flask演示登录页面、用户信息页面案例

    今日内容概要 面试简历编写 Flask框架介绍与安装 内容详细 1.面试简历编写 # 千万不要几个小时把简历凑出来 几天到一周 # 有没有面试机会,取决于简历写得怎么样 简历写好是第一步 # 投简历的 ...

  3. Flask 框架介绍

    FLASK 框架 框架介绍 简单来说: 小 扩展性极强 官方文档 点这里 Flask 和 Django 的区别 Django 无socke,依赖第三方模块wsgi 路由系统(CBV,FBV) 中间件, ...

  4. flask学习笔记(1)-虚拟环境安装

    Mac(类Linux): pip install virtualenv mkdir testvirtualenv cd testvirtualenv virtualenv flask-env#创建虚拟 ...

  5. 一、Flask路由介绍

    Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是So ...

  6. flask框架的教程--虚拟环境的安装[一]

    为什么需要安装虚拟环境呢? 因为虚拟环境中扩展包对本机软件中不影响 安装 查看是否安装了虚拟环境 安装虚拟环境的第三方工具 sudo pip install virtualenv sudo pip i ...

  7. 【Flask】微型web框架flask大概介绍

    Flask Flask是一个基于python的,微型web框架.之所以被称为微型是因为其核心非常简单,同时具有很强的扩展能力.它几乎不给使用者做任何技术决定. 安装flask时应该注意其必须的几个支持 ...

  8. Flask基本介绍

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

  9. Flask基础(01)-->Flask框架介绍

    什么是Flask? 说白了,Flask就是一种web框架 在python中常用的框架有 flask django tornado 什么又是web框架呢?  为什么要使用web框架呢? 增强扩展性和稳定 ...

随机推荐

  1. mac 切换用户

    sh-3.2# su - houzhibinhouzhibindeMacBook-Pro:~ houzhibin$

  2. 通过$.ajax设置预加载动画加强用户体验

    以前在jquery请求数据时,总喜欢用简洁的$.get与$.post提交数据,但有时发现由于网速的问题,有些时候网站加载js获得的数据会非常慢,于是就想能不能请求数据中间,给加载数据一个提示,增加用户 ...

  3. VirtualBox安装linux

    VBox相较于VMware要小巧,虚拟机该有的都有了.搭建记录下,学习... centos版本:CentOS-6.6-i386-bin-DVD1 VBox版本:6.0.4-128413-Win 之后可 ...

  4. 2017-12-15python全栈9期第二天第一节之昨日内容回顾

  5. java类的加载和执行顺序

    以前面试总会碰到涉及到类的执行过程的笔试题.下面记录我自己的测试结果: public class ClassA { public static ClassA classa = new ClassA() ...

  6. 面向对象【林老师版】:__init__定制自己独有的特征(三)

    本节内容 1.是如何产生对象 2.实例化的步骤 3.类即类型 一.是如何产生对象? __init__方法用来为对象定制对象自己独有的特征 1.stu1=LuffyStudent()调用报错 1.代码 ...

  7. HDU - 6314 Matrix(广义容斥原理)

    http://acm.hdu.edu.cn/showproblem.php?pid=6314 题意 对于n*m的方格,每个格子只能涂两种颜色,问至少有A列和B行都为黑色的方案数是多少. 分析 参考ht ...

  8. Oracle了解(一)

    通常所说的Oracle数据库服务器由一个数据库和至少一个数据库实例组成. 数据库实例是由系统后台进程和分配的内存区域构成 实例你是提供服务的进程,数据库是存放的数据. 数据库是存储数据的文件 数据库实 ...

  9. Java9+版本中,Interface的内容

    使用接口的注意事项: 1.接口没有静态代码块或者构造方法 2.一个类的父类是唯一的,但是一个类可以同时实现多个接口(区别) 3.如果实现类实现多个接口有重名的抽象方法,那么实现类只需要覆盖重写一个即可 ...

  10. css的几个小技巧

    本文收录css设置样式的一些小技巧 1. 设置文字在块级标签居中(包括水平居中和垂直居中) 水平居中 方法一:使用text-align text-align:center 方法二:目标标签的父级标签设 ...