flask教程 資料快取

2021-08-26 02:51:12 字數 2898 閱讀 7002

第三方擴充套件庫:flask-cache

安裝**:

pip install flask-cache

ide中配置**,這裡使用的是pycharm

from flask_cache import cache

# 配置

# 快取型別

# 主機

# 埠

# 資料庫

# 建立物件

快取檢視函式

@cache.cached(timeout=100,key_prefix='select')

# timeout:指定快取有效期,預設300s

def select():

students=student.query.all()

print('讀取資料')

return ','.join(s.name for s in students)

快取普通函式

# 快取普通函式,key_prefix必須指定

@cache.cached(timeout=100, key_prefix='common')

def common():

print('查詢資料庫')

return '返回的資料'

def hello():

return common()

清除快取

def clear():

# 指定刪除

# cache.delete('index')

# 全部清空

cache.clear()

return '快取已清除'

自定義快取

def zidingyi():

# 先從快取中獲取

data = cache.get('zidingyi_data')

if data:

return data

# 沒有快取資料

print('從資料庫中獲取資料')

data = '123456'

# 快取資料

cache.set('zidingyi_data', data, timeout=100)

return data

整體**

from flask import flask

from flask_script import manager

from flask_cache import cache

from flask_sqlalchemy import sqlalchemy

from flask_migrate import migrate,migratecommand

import os

manager.add_command('db',migratecommand)

#配置資料庫

base_dir=os.path.dirname(__file__)

database_uri='sqlite:///' + os.path.join(base_dir,'data.sqlite')

#配置redis

#快取型別

class student (db.model):

id=db.column(db.integer,primary_key=true)

name=db.column(db.string(20),unique=true)

#建立物件

#快取檢視函式

@cache.cached(key_prefix='index')

def index():

return '資料快取'

# @cache.cached(timeout=100)

def add():

lt1=student(name='liangliang')

lt2=student(name='zhaozhao')

lt3=student(name='da peng')

db.session.add_all([lt1,lt2,lt3])

db.session.commit()

from flask_sqlalchemy import get_debug_queries

queries = get_debug_queries()

for q in queries:

print(q)

# print('讀取資料庫')

return '資料已新增'

@cache.cached(timeout=100,key_prefix='select')

def select():

students=student.query.all()

print('讀取資料')

return ','.join(s.name for s in students)

def clear():

#指定刪除

cache.delete('index')

#全部清空

cache.clear()

return '快取已刪除'

if __name__=='__main__':

manager.run()

redis中常用命令

keys *

檢視所有鍵

dbsize

獲取鍵總數

flushdb

清除當前資料庫中的資料

flushall

清空redis所有資料庫的資料

exists key

檢查鍵是否存在

del key

刪除鍵type key

檢視鍵的資料結構型別

expire key seconds

設定鍵過期時間

ttl key

返回鍵的剩餘過期時間,有3種返回值,如**

flask入門教程 18 快取

當你的應用變慢時,你可以考慮使用快取,flask本身沒有提供快取,但是依賴包werkzeug提供了。我們可以使用 cache來使用簡單的快取 from werkzeug.contrib.cache import cache cache cache cache.set name pynickle ca...

flask快取處理

1.安裝依賴 pip install flask caching 1.7.22.需要快取處理業務 主要用在資料庫多次查詢,資料庫幾乎不修改情況下3.新建檔案,比如extensions.py 快取物件 from flask caching import cache cache cache 4.配置檔案...

flask使用快取

這裡使用redis跟flask caching,可以參考文件 huan 使用redis做快取主要是速度快,快取一些不經常變化的但訪問量大的頁面,使使用者體驗更好。安裝redis資料庫 pip install redis pip install flask caching from flask cac...