Flask:06-一首歌的时间掌握flask数据模型(02)

数据模型

模型关系

  • 一对多(使用最多)

    • 一:学生(Student)

      • 需要添加反向引用
    • 多:文章(Article)
      • 需要添加外键关联
  • 一对一
    • 一:学生(Student),主表

      • 需要添加反向引用,在一对多的情况下多指定属性userlist=False即可
    • 一:详情(Profile),次表
      • 需要添加外键关联
  • 多对多
    • 多:学生(Student)

      • 需要添加反向引用
      • 添加反向引用时需要通过secondary指定中间关联表
      • 设置反向引用的查询时机,可以通过db.backref完成
    • 多:课程(Course)
    • 中间关联表:学生选课表,不需要进行操作和维护
      • 字段:表名、外键关联

模型总结

  • 等价查询

    @app.route(‘/query/‘)
    def query():
        # students = Student.query.all()
        # 等价于
        students = db.session.query(Student).all()
        return ‘,‘.join(s.name for s in students)
    
  • 指定字段查询
    @app.route(‘/select/‘)
    def select():
        # ret = db.session.query(Student.id, Student.name).all()
        # 指定字段查询,等价于上式
        ret = Student.query.with_entities(Student.id, Student.name).all()
        # 返回指定字段组成的元组构成的列表
        print(ret)
        return ‘查询结束‘
    
  • 分页查询:paginate,项目中讲解。
  • 查看SQL日志:就是查看执行过的SQL语句。
    # 记录SQL日志,需要满足以下三个条件中的任意一个即可
    # app.config[‘DEBUG‘] = True
    # app.config[‘TESTING‘] = True
    app.config[‘SQLALCHEMY_RECORD_QUERIES‘] = True
    
    from flask_sqlalchemy import get_debug_queries
    
    queries = get_debug_queries()
    for q in queries:
        print(q)
    

数据缓存

  • 说明:

    数据库的速度是一个web应用的性能瓶颈,因此,为了提高访问效率,应该尽可能减少数据库的访问。可以将经常访问的数据缓存起来,每次访问时先从缓存中获取数据,若有直接返回;没有再从数据库中读取。

  • flask-cache:专门负责数据缓存的扩展。
  • 安装:pip install flask-cache
  • 使用:
    from flask_cache import Cache
    
    # 配置
    # 缓存类型
    app.config[‘CACHE_TYPE‘] = ‘redis‘
    # 主机
    app.config[‘CACHE_REDIS_HOST‘] = ‘127.0.0.1‘
    # 端口
    app.config[‘CACHE_REDIS_PORT‘] = 6379
    # 数据库
    app.config[‘CACHE_REDIS_DB‘] = 1
    
    # 创建对象
    cache = Cache(app, with_jinja2_ext=False)
    
  • 缓存视图函数:
    @app.route(‘/‘)
    # timeout:指定缓存有效期,默认300s
    # key_prefix:缓存键前缀,默认:view/ + 路由地址
    @cache.cached(timeout=100, key_prefix=‘index‘)
    def index():
        print(‘读取数据库‘)
        return ‘有效数据‘
    
  • 缓存普通函数:
    # 缓存普通函数,key_prefix必须指定
    @cache.cached(timeout=100, key_prefix=‘common‘)
    def common():
        print(‘查询数据库‘)
        return ‘返回的数据‘
    
    @app.route(‘/hello/‘)
    def hello():
        return common()
    
  • 清除缓存
    @app.route(‘/clear/‘)
    def clear():
        # 指定删除
        # cache.delete(‘index‘)
        # 全部清空
        cache.clear()
        return ‘缓存已清除‘
    
  • 自定义缓存
    @app.route(‘/zidingyi/‘)
    def zidingyi():
        # 先从缓存中获取
        data = cache.get(‘zidingyi_data‘)
        if data:
            return data
        # 没有缓存数据
        print(‘从数据库中获取数据‘)
        data = ‘123456‘
        # 缓存数据
        cache.set(‘zidingyi_data‘, data, timeout=100)
        return data
    

    ?

?

原文地址:https://www.cnblogs.com/swjblog/p/9741718.html

时间: 2024-11-09 02:51:51

Flask:06-一首歌的时间掌握flask数据模型(02)的相关文章

Flask:05-一首歌的时间掌握flask数据模型(01)

数据模型 数据库回顾 分类: 关系型数据库:MySQL.sqlite.- 非关系型数据库:Redis.MongoDB.- 操作: 执行原生SQL语句,每次都需要拼接SQL语句,非常繁琐而且特别容易出错. ORM(对象关系映射),使用ORM可以通过对对象的操作完成对数据库的操作. flask-sqlalchemy 说明:其实是sqlalchemy扩展库在flask中的移植库,通过了绝大多数关系型数据库的支持(ORM) 安装:pip install flask-sqlalchemy 连接地址配置:

goldwave怎么把两首歌合在一起,goldwave使用教学

goldwave是一款非常好用功能强大的音频编辑软件,用户可以使用goldwave录制.编辑.转换音频,可以进行相应的音频处理,制作出自己满意的音频,不过有些朋友不知道怎么用goldwave怎样把两首歌合并在一起,下面安下小编就给大家带来详细的介绍. 1.打开GoldWave软件,依次导入待合成的音乐.导入的步骤为"文件--打开" 2.单击"文件--新建",新建一个空白的音频文件,注意设置时间要比两段音乐的和大一些,这里的格式是"HH:MM:SS.T&qu

[zt]给你的Mp4大换血,精选Touch里3年收集的900多首歌,"经典不忍去的""最新近流行的",与你共享~~

如果你是音乐爱好者: 这些歌, 请戴上耳机, 调大音量, 一个人听 ,全世界 都是你的!!!!! (一)这些歌很温暖,没有金属味,适合有阳光的午后,很悠闲... [Anaesthesia]Maximilian Hecker强烈推荐     [Summer Days In Bloom]Maximilian Hecker力推! [end of May]Keren Ann [gotta have you]The Weepies调调很特别,我用它做过背景音乐. [i remember]郭采洁 我喜欢睡觉

人生就像一首歌

很多人 应该看过江苏卫视<非常勿扰>,对<非诚勿扰>里每次嘉宾出场的时候放的那首音乐歌非常熟悉,让人兴奋不已. 今天特意查了下歌名,叫 Can You Feel It 听了之后,觉得一般般,没有收藏的欲望,当然除了那段高潮比较让人兴奋,或许是. 然我想到,人生就是这样子,可能只有在哪个时间段,爆发出惊人四射的魅力或者搞个大事件出来,这时你是最被人接受的,别人看到 你的成功,别人认可你的就是那么一点,其他的方面可能是普普通通,没有任何亮点. 接着,又想到了围城,有人想进去,有人想出来

一个人,一首歌

对“一个人,一首歌”,用面向对象的思路进行了简单的模拟. 下载源码 一个人,一首歌,布布扣,bubuko.com

为王菲写的第三首歌《中华情》

中华情 传说伏羲与女娲交尾,从此有了人类 炎帝和黄帝中原逐鹿灭蚩尤,从此有了炎黄子孙 尧舜禹,夏商周,殷商人把文字刻在甲骨上,从此有了文字记载 初秋战国,屈原孔子孟子和孙子,还有韩非子 秦王嬴政灭六国,苛政猛于虎,孟姜女苦倒八百里长城 陈胜吴广起义,项羽巨鹿大败秦军,刘邦入关中 楚汉之争,项羽兵败乌江,无颜面对江东父老 刘邦建汉朝,从此有了汉字和汉族,匈奴远走欧洲 诸葛亮隆中对出茅庐,三国鼎足成,可惜阿斗扶不起 唐朝盛世无以伦比 马可波罗游历元大都 明朝郑和七次下西洋 唐诗宋词,明清小说,中医草

天黑的时候,我又想起那首歌

開始懂了孙燕资我居然没有调头最残忍那一刻静静看你走一点都不像我原来人会变得温和是透澈的懂了爱情是流动的不由人的何必激动着要理由相信你仅仅是怕伤害我不是骗我非常爱过谁会舍得把我的梦摇醒了宣布幸福不会来了用心酸微笑去原谅了也翻越了有昨天还是好的但明天是自己的開始懂了快乐是选择今天突然又想起了3年前的那首歌曲,那时候整个孙燕姿的磁带像是为我当时的心情量身定做的,每一句歌词都触碰到我心里最柔软的地方,那种滋味在我遇到麦麦后没有想到还会重来,可是3年后的今天,我情不自禁的哼起了那首歌.或许这个时候不该听这

52首歌,一个你

看到朋友分享庄心妍的<热恋之后>,一时兴起,一闭眼,一睁眼,一不小心又让你们看到了我的才华. 接下来Showtime 热 恋 过 后 幸 福 离 我 好 远 心 有 所 爱 一 直 想 着 他 为 情 所 伤 独 自 唱 情 歌 歌 声 里 的 回 忆 掌 心 上 的 时 光 最 后 的 温 柔 乐 在 其 中 越 笑 越 难 过 给 你 机 会 诚 实 没 有 我 的 冬 天 你 会 不 会 冷 后 来 才 发 现 落 单 的 恋 人 孤 单 坠 爱 ( 错 爱 ) 真 的 不 容 易 爱

夜幕降临,我还记得那首歌

我开始明白孙岩资本其实,我做了一个U形转弯最残酷的时刻静静地看着你去所以不像我和是透澈的懂了爱情是流动的不由人的何必激动着要理由相信你仅仅是怕伤害我不是骗我非常爱过谁会舍得把我的梦摇醒了宣布幸福不会来了用心酸微笑去原谅了也翻越了有昨天还是好的但明天是自己的開始懂了快乐是选择今天突然又想起了3年前的那首歌曲.那时候整个孙燕姿的磁带像是为我当时的心情量身定做的,每一句歌词都触碰到我心里最柔软的地方.那种滋味在我遇到麦麦后没有想到还会重来.可是3年后的今天,我情不自禁的哼起了那首歌.或许这个时候不该听