当前位置: 首页 > news >正文

Flask入门的第一个项目进阶版

前言:

此次版本增加【一对多】数据库关系和动态路由设置。


一、数据库设计

environments表与variable1表的关系为:一对多。variable1.env_id设置为外键,与environments表建立关系。

 
 
 

二、建立数据库模型

如下图所示,Variable模型中的env_id列被定义为外键,就是这个外键建立起了关系。传给db.ForeignKey()的参数'environments.id'表明,这列的值是environments表中行的id值。 


三、多表查询 

1、查找environments表中的id为1,对应的所有Variable数据

Variable.query.filter_by(env_id=1).join(Environments, Variable.env_id == Environments.id)

2、查找environments表中的id为1,对应的一条Variable.id 为2的Variable数据

Variable.query.filter_by(env_id=1,id=2).join(Environments,Variable.env_id == Environments.id).first_or_404()


四、匹配动态url

在Flask中,可以将URL中的可变部分使用一对小括号<>声明为变量, 并为视图函数声明同名的参数:

@app.route('/delete/<int:id>')

@app.route('/change/<int:env_id>/<int:id>',methods=['GET','POST'])

endpoint的映射包含变量: 

redirect(url_for('show_variable_list',_external=True,env_id=env_id))


五、开源代码

https://github.com/wangxiaoxi3/Flask_test_1


以上,希望能对你有所帮助~~欢迎交流,共同进步~~

作者:搁浅
出处: http://www.cnblogs.com/xiaoxi-3-/
如果对您有帮助,请关注我的同名简书:https://www.jianshu.com/u/da1677475c27
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关文章:

  • debian安装配置fcitx
  • 浅谈MySQL中的查询优化
  • 转载构造函数声明为Private和Protected
  • linux下Sublime的安装与插件推荐
  • 【X-Pack解读】阿里云Elasticsearch X-Pack Graph组件功能详解
  • PHP正则表达式的修饰符
  • HQL的select new map ···语法
  • 使用canvas检测HTML5视频解码错误
  • Android Studio 导出 Jar 给 Unity 使用
  • 数据库关联映射建表(一对一,一对多,多对多)
  • window环境下 恢复odoo数据库备份文件时产生的 Database restore error: Command `psql` not found....
  • ubuntu12.04下Eclipse上集成python
  • 莫名奇妙的异常001:Invalid or unexpected token
  • 通过MCollective更加安全地实现puppet的推送更新功能
  • 匈牙利算法
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Android组件 - 收藏集 - 掘金
  • co模块的前端实现
  • in typeof instanceof ===这些运算符有什么作用
  • iOS 系统授权开发
  • JavaScript类型识别
  • java第三方包学习之lombok
  • Java多线程(4):使用线程池执行定时任务
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Map集合、散列表、红黑树介绍
  • mysql innodb 索引使用指南
  • mysql常用命令汇总
  • Selenium实战教程系列(二)---元素定位
  • Vue.js源码(2):初探List Rendering
  • WebSocket使用
  • 模型微调
  • 让你的分享飞起来——极光推出社会化分享组件
  • 微信小程序--------语音识别(前端自己也能玩)
  • 在weex里面使用chart图表
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #QT(一种朴素的计算器实现方法)
  • (02)Hive SQL编译成MapReduce任务的过程
  • (SpringBoot)第七章:SpringBoot日志文件
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (五)网络优化与超参数选择--九五小庞
  • (转)3D模板阴影原理
  • (转)我也是一只IT小小鸟
  • (转载)OpenStack Hacker养成指南
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .net framework profiles /.net framework 配置
  • .net实现客户区延伸至至非客户区
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • @media screen 针对不同移动设备
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429