Flask基础介绍

1. 介绍

Flask是一种使用Python 编写的轻量级Web应用框架, 实现了基础的核心, 用extension增加其他功能
它的WSGI工具箱采用Werkzeug, 模板引擎则使用Jinja2

2. Flask使用

2.1 路由

from flask import Flask
app = Flask(__name__)
@app.route("/url")
def handle_url:
    return "Something"

2.2 反向路由

from flask import url_for
url_for()

2.3 重定向

from flask import redirect
redicrect()

2.4 请求和响应

from flask import request
from flask import make_response

// 设置Cookie
response = make_response(url_for(‘index‘))
response.set_cookie(name, json.dumps(dict))
// 获取Cookie
json.loads(request.cookies.get(name))

2.5 模板

flask.render_template

2.5.1 模板的基本使用

{{ value }}
分支语句
{% if something %}
...
{% else %}
...
{% endif %}
循环语句
{% for object in objects %}
...
{% endif %}

2.5.2 模板的继承

// 基类: base.html
...
{% block content %}
{% endblock %}
...
// 子类: child.html
{% extends "base.html" %}
{% block content %}
...
{% endblock %}

2.6 消息提示

from flask import flash
// 注意: 使用前需要配置app.secret_key
flash(strings)
*.html
{{ get_flashed_messages()[n] }}

2.7 异常

2.7.1 异常处理

@app.errorhandle(error_number)

2.7.2 抛出异常

from flask import abort
abort(error_number)

2.8 其他

jsonify用于返回json数据

3. Flask扩展模块

3.1 Flask-Script

用于执行外部脚本, 如连接数据库

flask_script.Manager

4. 部署

4.1 部署方案

系统: Linux(CentOS)
WSGI服务器: Gunicorn, uWSGI, CherryPy, Tornado, Gevent, mod_wsgi(Apache)
Web服务器: Nginx

4.2 常用工具

4.2.1 virtualenv

$ mkdir app
$ cd app/
$ virtualenv flask
New python executable in /home/user/app/flask/bin/python2
Also creating executable in /home/user/app/flask/bin/python
Installing setuptools, pip, wheel...done.

$ source flask/bin/activate
(flask) $
(flask) $ deactivate

4.2.2 Supervisor

命令: supervisorctl
配置: /etc/supervisor/supervisor/conf.d/app.conf

4.3.3 其他工具

DevOps, Fabric

4.3 Nginx配置

Nginx配置

参考:
<Flask框架和Flask-Script介绍>

时间: 2024-11-04 06:11:28

Flask基础介绍的相关文章

【简译】jQuery对象的奥秘:基础介绍

本文翻译自此文章 你有没有遇到过类似$(".cta").click(function(){})这样的JavaScript代码并且在想“$('#x')是什么”?如果这些对你想天书一样,请往下读.如果你认为这些代码不可能是真的,请浏览一些jQuery例子,他们都是这种结构. 这篇文章覆盖了像下面一样吓人的代码片段中涉及的关键概念.我们以一个长例子开始,这个长例子是基于一个让一个正方形运动的简单例子(a simple example of animating a square).你可能不需要

Zabbix 3.0 基础介绍 [一]

Zabbix 3.0 基础介绍 [一] zabbix 一.Zabbix介绍 zabbix 简介   Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利   zabbix是一个基于Web界面的,提供分布式系统监控以及网络监视功能的企业级的开源解决方案.   zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题

【OpenGL】“我叫MT”纯手工3D动画制作之1——基础介绍

最近在家研习面经,温习基础,索性花些时间将本科期间完成的一些学习之作整理出来,分享之余顺便水点经验 其实这个事情起源于一门“计算机图形与动画(Computer Graphics & Animation)”的外方课程,当初的外籍教师Tony教的很认真,对于这门课自己也投入了非常多的时间.言归正传,这里先介绍一些涉及的技术,熟悉的同学请跳过哈~ A.几何物体建模 带阴影的后面我会介绍到的哦~ 加下划线的后面我后面会举栗子的哦~ B.涉及的图形学技术与应用 C.动画技术 参考文献 1.王汝传,张登银,

qt model/view 架构基础介绍之QTreeWidget

# -*- coding: utf-8 -*- # python:2.x #说明:QTreeWidget用于展示树型结构,也就是层次结构同前面说的 QListWidget 类似,这个类需要同另外一个辅助类 # QTreeWidgetItem 一起使用.不过,既然是提供方面的封装类,即便是看上去很复杂的树, # 在使用这个类的时候也是显得比较简单的 __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt impor

qt model/view 架构基础介绍之QTableWidget

# -*- coding: utf-8 -*- # python:2.x #说明:QTreeWidget用于展示树型结构,也就是层次结构同前面说的 QListWidget 类似,这个类需要同另外一个辅助类 # QTreeWidgetItem 一起使用.不过,既然是提供方面的封装类,即便是看上去很复杂的树, # 在使用这个类的时候也是显得比较简单的 __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt impor

Erlang基础 -- 介绍 -- Wordcount示例演示

在前两个blog中,已经说了Erlang的历史.应用场景.特点,这次主要演示一个Wordcount的示例,就是给定一个文本文件,统计这个文本文件中的单词以及该单词出现的次数. 今天和群友们讨论了一个问题,突然一下子就上升到哲学角度上了,装逼装大发了. PS:图片中有错别字,%s/财务和其他9个月/财务和其他9个人/g 不过真心想说的一点是,把Erlang系统,映射到现实中,很多奇葩问题,就能迎刃而解了.所以,在下面的简要设计中,我就尽可能的代入一下现实世界吧. 环境安装 mac 的话,用brew

qt model/view 架构基础介绍之QListWidget

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt import * from PyQt4 import QtGui, QtCore from PyQt4.QtCore import * import sys # MVC是Model-View-Controller的简写,即模型-视图-控制器 #model/view框架将传统的mv模型分

Avaya Exrience Portal(AEP)基础介绍 二(四大组件总结)

什么是Avaya Exrience Portal(AEP)? 1:提供语音(或者多媒体)自动化用户体验的软件平台:  2:基于标准的VXML(定义了如何使用语音识别.语音合成.互联网访问.数据库访问.语音文件播放.DTMF输入等功能开发一个完整的语音应用系统.)和CCXML(它基于XML定义了一系列开放标准的呼叫控制API)的应用:  3:支持多媒体处理:  4:完全基于Web架构:  5:支持TTS文语转换和语音识别技术:     2)AEP包含的组件   EPM:AEP集成的管理,报表,监控

lvs基础介绍及实验演示

LVS基础介绍 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个开源的软件,可以基于软件的方法实现LINUX平台下的负载均衡,由章文嵩博士于1998年5月研发,是中国国内最早出现的自由软件项目之一. LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服