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. cookie猜数字游戏(下)------------以及cookie使用的不安全之处

    1.通过cookie可以解决上篇中多个用户对数据的修改,每个COOKIE保存不同用户的数据 <?php if(empty($_COOKIE['num'])||empty($_GET['num'] ...

  2. Java基础super关键字、final关键字、static关键字、匿名对象整理

    super关键字 10.1子父类中构造方法的调用 public class Test { public static void main(String[] args) { new Zi(); } } ...

  3. python kafka

    转载:https://zhuanlan.zhihu.com/p/31731892 https://kafka-python.readthedocs.io/en/master/usage.html

  4. saltstack SLS 安装haproxy+nginx实例分析学习

    本文主要以实例的形式去熟悉sls的部署流程及相关模块的使用 文件下载:https://github.com/unixhot/saltbook-code 目录结构 [root@k8s_master sa ...

  5. 全面理解JavaScript中的 this

    全面理解JavaScript中的 this 上下文 VS 作用域 作用域(scope) 是在运行时代码中的某些特定部分中变量,函数和对象的可访问性.换句话 说,作用域决定了代码区块中变量和其他资源的可 ...

  6. Git与GitHub学习笔记(六)使用 Github Pages 管理项目文档

    前言 你可能比较熟悉如何用 Github Pages 来分享你的工作,又或许你看过一堂教你建立你的第一个 Github Pages 网站的教程.近期 Github Pages 的改进使得从不同的数据源 ...

  7. flask结合celery实现异步响应HTTP请求

    摘要: 1.场景描述 2.flask介绍 3.celery介绍 4.项目伪代码记录 5.几个备注点 内容: 1.场景描述 最近在优化用户画像的东西,要开发一个给文本打标签的服务:我这边需要提供一个HT ...

  8. vue常用指令

    1.v-if系列 v-if="数据|判断" 只要条件成立,就显示if中的元素 v-else (注意:必须跟在v-if或者v-if-else的后面,不然失效) 如果if条件不成立显示 ...

  9. 【转载】C# 泛型详解

    https://www.cnblogs.com/yueyue184/p/5032156.html

  10. SQL Server循环——游标、表变量、临时表

    游标 在游标逐行处理过程中,当需要处理的记录数较大,而且游标处理位于数据库事务内时,速度非常慢. -- 声明变量 DECLARE @Id AS Int -- 声明游标 DECLARE C_Id CUR ...