本篇主要内容: 闪现 请求扩展 中间件 蓝图 写装饰器,常用 functools模块,帮助设置函数的元信息 import functools def wrapper(func): @functools.wraps(func) def inner(*args,**kwargs): return func(*args,**kwargs) return inner @wrapper def f1(): pass print(f1.__name__) # f1 续接第一篇 8.Flask之闪现 # 首先…
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. “微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Pyt…
补充:一个编程思路 需求:做一些邮件短信微信的消息通知,比如账单告警之类的:比如数据库操作,数据库种类繁多:缓存的选择比如redis/memcache,诸如此类需要进行选择配置,如果我们单纯的用函数去实现就要进行判断,选择越多判断就要越多,显然这种写法是不行的,那么由此我们就想到了django的中间件的配置,只需要在配置文件中写上路径就可以了,还有restframework中我们只要在配置文件中写上一些的组件的路径或者名称就可以使用了,我们就可以用这种思路来解决开始的问题 总的流程:我们可以把不…
请求响应 flask的请求信息都在request里 flask的响应方式有四剑客,也可以自定义响应 请求相关信息 # request.method 提交的方法 # request.args get请求提及的数据 类似字典类型 # request.form post请求提交的数据 类似字典类型 # request.values post和get提交的数据总和 类似字段类型 # request.cookies 客户端所带的cookie # request.headers 请求头 # request.…
session 除请求对象之外,还有一个session对象.它允许你在不同请求储存特定用户的信息.它是在Cookies的基础上实现的,并且对,Cookies进行密钥签名要使用会话,你需要设置一个密钥. (app.session_interface对象) 使用必须先设置一下密钥:app.secret_key = 'xxxx' session['name'] = 'xxx' #放值 session['name'] # 取值 源码执行流程 1.save_session -- 响应的时候,把sessio…
1.蓝图 要用蓝图管理项目,需要导入的包是:from flask import Buleprint 具体大致分为三步: 1.先在子模块中导入蓝图包,然后再创建蓝图对象. 2.然后将子模块中的视图函数存储在蓝图对象中. 3.最后在主模块的文件夹里注册蓝图. 下面分别展示以上三步在项目中的具体操作: 第一步: 第二步: 第三步: 在子模块中运用模版:需要两步. 第一: 先要在pycharm中设置一下: 第二: 然后需要在创建蓝图对象的时候需要手动加上下面这句话: 前面那句话的意思是给url加上一个前…
入门知识: 一.关于作用域: 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. if 10 == 10: name = 'allen' print name 以下结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 以上结论,对于其他语言适用,对于python 不适用 ** 记住:python,只要内存里存在,则就能适用 (栈 ) 二.三元运算: 1).普通循环: if name == "test": name = "坏人"…
一.第一个hello world程序 # coding=utf-8 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(debug=True) 1.app参数的设置: 以下几种方式全部拿debug模式举例: .方式一:将参数设置到app.config字典中: app.conf…
1.flask特有的变量和函数: 变量:g.session.request.config 函数:url_for().get_flashed_messages()这个函数注意了啊,记住这是个函数,别忘了写括号!!!!!!!!! 废话不多说,直接上代码体验一下: 先解释一个bug,当我们设置了# -*- coding:utf-8 -*-,但是当返回浏览器页面的数据是汉字的时候还会出现字符编码问题,如下: UnicodeDecodeError: 'ascii' codec can't decode b…
1.flask连接数据库的四步: 倒入第三方数据库扩展包:from flask_sqlalchemy import SQLAlchemy 配置config属性,连接数据库: app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:mysql@localhost/first_flask"app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False 创建数…