python常用框架之一 Flask (1) 初识Flask

---恢复内容开始---

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框架的基本操作

#建立flask对象

app = Flask(__name__)

#使用flask路由器,指定网址和控制器

@app.route(‘/‘)

def index():

  return "hello world sjgbd kas "

#给文章增加参数功能使用<变量名称>,路由方法要和路由定义的参数同步

@app.route(‘/hello/<id>/<name>‘)

def hello(id,name):

  print(type(id))

  return "hello world ,你的参数是 %s,%s" % (id,name)

注意参数id和name默认为str类型,若要指定类型:

@app.route(‘/hello/<int:id>‘)

def hello(id):

  return ‘hello %d‘ % id

#使用重定向模块来进行跳转,要先导入redirect模块

@app.route(‘/1‘)

def reur1():

return redirect(‘http://www.baidu.com‘)括号中填写的是需要跳转的路径网址

#使用url_for方法来实现站内跳转,参数指定路由方法名称

@app.route(‘/2‘)

def reurl_in():

  return redirect(url_for(‘hello‘))注意url_ffor 方法括号中写入的是路由方法名称,不用添加括号

#使用jsonify模块来让网页直接显示json数据,methods方法是用发来指定发送方式

@app.route(‘/json‘,methods=[‘POST‘])

def re_json():

  json_dict = {‘id‘:10,‘title‘:‘flask应用‘,‘content‘:‘flask格式化‘}

#使用jsonfy来将定义好的数据转换成json格式

  return jsonify(json_dict)

捕获异常  errorhandler 装饰器

#flask统一对状态码捕获异常,用来进行友好提示,提高用户体验

@app.errorhandler(405)

def internal_server_error(e):

  return "这个接口不能被get请求到,只能post请求"

#flask统一对状态码捕获异常,用来进行友好提示,提高用户体验

@app.errorhandler(404)

def internal_server_error(e):

  return "网页不存在或已被删除"

请求钩子

在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,

比如: 在请求开始时,建立数据库连接; 在请求开始时,根据需求进行权限校验;

在请求结束时,指定数据的交互格式;

为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。

请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子:

#在第一次请求之前调用

@app.before_first_request

def before_first_request():

print("这是第一次请求之前调用的方法")

#在每一次请求之前调用

@app.before_request

def before_request():

print("每一次请求之前调用这个")

#在请求之后调用的方法,必须传响应参数,然后将响应内容返回

@app.after_request

def after_request(response):

print("在请求之后调用这个方法")

return response

#在请求之后调用服务器出现的错误信息

@app.teardown_request

def teardown_request(e):

print("打印服务器出现的错误是 %s " % str(e))

程序加载配置的三种方式:

1#从配置文件里来加载配置

# app.config.from_pyfile(‘config.ini‘)

创建配置文件 config.ini,在配置文件中添加配置

运行测试,在代码保存后直接保存 会自动重启服务

2#从环境变量中来加载配置

# app.config.from_envvar(‘app_config‘)

这是在环境变量中设置配置通过代码来加载配置

3#从配置对象来加载配置、

这个是通过写代码,创建一个类来配置对象

#建立一个配置类

class Config(object):

  DEBUG = True

  JSON_AS_ASCII = False

# app.config.from_object(Config)

---恢复内容结束---

原文地址:https://www.cnblogs.com/ssjz12/p/10144607.html

时间: 2024-10-04 00:39:16

python常用框架之一 Flask (1) 初识Flask的相关文章

Python常用框架

序言 Django Flask Tornado 适合后端微服务 资料 flask 原文地址:https://www.cnblogs.com/cnki/p/10920700.html

python之初识Flask

一.初识Flask Python三大主流Web框架对比 1.三大框架的特点 Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架 Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架 Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架 2.三大框架的优缺点 Django 通常用于大型Web应

Python进阶(四十九)-初识Flask Blueprint

Python进阶(四十九)-初识Flask Blueprint 前言   在进行Python Web开发时选择Flask框架.项目模块划分阶段,使用Blueprint(这里暂且称之为“蓝本”).Blueprint通过把实现不同功能的module分开,从而把一个大的application分割成各自实现不同功能的module.在一个Blueprint中可以调用另一个blueprint的view function, 但要加相应的blueprint名.   Blueprint还有其他好处,其本质上来说就

python web框架Flask——csrf攻击

CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用也就是人们所知道的钓鱼网站.尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左.XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站.与XS

狗书无敌,天下第一(初识flask)

为什么选择使用flask? 和其他框架相比, Flask 之所以能脱颖而出,原因在于它让开发者做主,使其能对程序具有全面的创意控制. 在 Flask 中,你可以自主选择程序的组件,如果找不到合适的,还可以自己开发. Flask 提供了一个强健的核心, 其中包含每个 Web 程序都需要的基本功能,而其他功能则交给行业系统中的众多第三方扩展. 一句话概括就是flask不是一个高度定制化的web框架,你可以做到随心所欲,使用任何可能的扩展来完成你的项目. 狗书的代码已上传GitHub:Companio

python 15 种常用框架

以下是伯乐在线从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构.以及全功能的管理后台. Diesel:基于Greenlet的事件I/O框架 Die

python web 部署:nginx + gunicorn + supervisor + flask 部署笔记

python web 部署 web开发中,各种语言争奇斗艳,web的部署方面,却没有太多的方式.简单而已,大概都是 nginx 做前端代理,中间 webservice 调用程序脚本.大概方式:nginx + webservice + script nginx 不用多说,一个高性能的web服务器.通常用来在前端做反向代理服务器.所谓正向与反向(reverse),只是英文说法翻译.代理服务,简而言之,一个请求经过代理服务器从局域网发出,然后到达互联网上服务器,这个过程的代理为正向代理.如果一个请求,

Python 常用Web框架的比较

从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构.以及全功能的管理后台. Diesel:基于Greenlet的事件I/O框架 Diesel提供一个

初识 flask

flask是一个轻量级框架,它默认依赖2个外部库:Jinja2 模板. WSGI工具集--Werkzeug. flask的使用特点是基本所有的工具使用都依赖于导入的形式去扩展,flask只保留了web开发的核心功能. 通常:我们学习一个web框架只需要学会 如何使用路由.如何使用视图函数与模板语法.如何导入数据库 就可以跑通一个web项目 安装Flask:pip install flask 安装Flash:pip install flask 1|0一.Werkzeug简介 代码示例: from