当前位置: 首页>编程语言>正文

python flask中几层架构 python框架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.xamrdz.com/lan/5sf1932676.html

相关文章: