Flask(框架)

一、蓝图(熟练)

  • 在project中以一个清晰的目录结构划分app中各个视图、模板和静态信息,并且用init.py文件进行管理。
  • 主要功能:url_perfix 给蓝图下的所有函数加域名;before_request 局部添加视图执行前的操作。
1. 管理文件
from project_name import __init__

if __name__ == '__main__':
    app.run()
2. **初始文件
from flask import Flask
app = Flask(__name__)

from .views import task_processing

app.register_blueprint(task_processing.tp)
__init__.png
3. *视图
from flask import Blueprint
#每个蓝图的名字要不同
#url_perfix:以下的函数都要加上'/task_processing'为前缀
tp = Blueprint('login',  __name__, url_perfix='/tp')

@tp.before_request('')
def before():
    return '其他视图执行前执行'

@tp.route('/vague')
def vague():
    return ''

@tp.route('/structed')
def structed():
    return ''
视图.png
ps:标准蓝图框架

框架 数据库 模板 函数
MTV Model Template View
MVC Model View Controller

二、知识补充

1.项目依赖

#自动写一个requirement.txt文件记录项目所依赖的包和模块版本
pipregs ./  # ./ 当前目录

#自动下载requirement.txt文件记录的项目依赖
pip3 install -r requirement.txt  #  -r 全部

2.方法和函数的区别

class report(object):
  def check(self):
    return 1+1

#类里面的def可以是函数也可以是方法,区别在于谁去调用他
report(123) #函数

rpt = report()
rpt.check() #方法

三、组件的使用和原理(Session相关)

1.Redis
  • 传统的Flask程序会将session放在用户的cookie里面,而Redis则会将session放在内存里面
2.Redis/ Memcashed/ File/ MongoDB/ SQLAlchemy
  • 推荐使用Redis因为数据类型更丰富,Memcashed里面只有字符串类型
3.配置!!

在__init__文件中
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = redis(hose='127.0.0.0',port='5000')

4.修改

from flask_session import Session
Session(app)

5.注意
  • 传统的Flask 程序 session.permanent 默认为False,只要session第一层的值没有发生改变就不会更新。造成超时的时间按照用户第一次登陆的时间来定,而不是最后一次操作时间。
  • 用户超时时间根据session里面的PERMANENT_SESSION_LIFETIME = timedelta(minutes=20)而定
  • 用传统的Flask程序时,有两种修改方式,让session在用户每次操作都更新:
    ①modified = True
    ②SESSION_REFRESH_EACH_REQUEST = True and session.permanent = True (Redis中是默认的)

四、数据库链接池

1.原理

使用传统的pymysql方法,每一个请求就会新建一个链接,但是使用完并不会马上关闭链接,是需要一些时间的(可以看源码)。而且链接本身是有复用性的,为了应对高频、重复地对数据库进行查询从而频繁地创建链接和关闭链接影响数据库性能,可以使用链接池进行优化。
在程序启动时,根据mincashed参数创建制定数据量的线程数,有请求过来就是占用一个。当使用完,conn.close()也不会马上关闭链接,而是将链接放回链接池等待下一个请求使用。

2.创建连接池
from DBUtils.PooledDB import PooledDB,SharedConnection
import pymysql
POOL = PooledDB(
creater = pymysql,
maxconnections=6, #最大链接数
mincashed=2,maxcashed=5 #最大/小闲置连接数
blocking=True #拥挤排队,False会直接报错
maxusage=None #链接多大复用次数,默认None
host, port, user, password, database, charset #数据库信息
)
3.使用
conn = POOL.connection()
cursor = conn.soncur()
#查询、执行语句与pymysql一致
cursor.exacute()
result = cursor.fetchall() #cursor.commit()

cursor.close()
conn.close()

五、面向对象

1. Trick

__mro__:按顺序找到类的继承关系
__dict__:找到函数或者对象里面的所有值
metaclass:类是默认由type()创建的

十、ORM

1.ORM是关系对象映射

类 --> 表
对象 --> 记录(一行数据)
当有了关系之后,则不需要在编写sql,取而代之的是操作、类、对象
ORM:Model.Users.objects.filters(id=1,type='1')

--等价于以上python语句
select * from user u 
     join dept d on u.dept_id=d.id

2.其他

:ORM和原生SQL哪个好
:ORM执行速度慢,但开发方便

概念:
db first: 根据数据库的表生成类
code first: 根据类创建数据库

十一、SQLAlchemy

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容