Flask 入门(九)
外键数据库
我们想想,所有的数据不可能这么简单,万一建的数据库有了外键呢?如何增加,如何查询?
承接上文:
先登录mysql数据库,把里面的表和数据都删了
执行语句:
use data
select * from users
select * from dogs
发现是空的
然后修改main.py中的代码如下:
#encoding:utf-8
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']='mysql+pymysql://root:005@127.0.0.1:3306/data'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
app.config['JSON_AS_ASCII']=False
db = SQLAlchemy(app)
db = SQLAlchemy(use_native_unicode='utf8')
class Users(db.Model):
__tablename__='users'
id=db.Column(db.Integer,primary_key=True,autoincrement=True)
name=db.Column(db.String(20),nullable=False)
class Dogs(db.Model):
__tablename__='dogs'
id=db.Column(db.Integer,primary_key=True,autoincrement=True)
name=db.Column(db.String(20),nullable=False)
master_id=db.Column(db.Integer,db.ForeignKey('users.id'))
@app.route('/')
def index():
db.create_all()
return '欢迎登录'
@app.route('/adduser/')
def addusers():
user1=Users(name='huhai')
user2=Users(name='lanyue')
db.session.add(user1)
db.session.add(user2)
db.session.commit()
return '添加成功!'
@app.route('/adddogs/')
def adddogs():
dog1=Dogs(name='gou1',master_id=1)
dog2=Dogs(name='gou2',master_id=2)
dog3=Dogs(name="gou2",master_id=1)
dog4=Dogs(name="gou1",master_id=2)
db.session.add(dog1)
db.session.add(dog2)
db.session.add(dog3)
db.session.add(dog4)
db.session.commit()
return '添加成功!'
@app.route('/find_master/<int:dog_id>/')
def find_master(dog_id):
dog=Dogs.query.filter(Dogs.id==dog_id).first()
user_id=dog.master_id;
user=Users.query.filter(Users.id==user_id).first()
return user.name
if __name__=='__main__':
app.run(debug=True)
打开浏览器,先后输入
127.0.0.1:5000/adduser/
回车
127.0.0.1:5000/adddogs/
回车
再次执行上面数据库的命令,结果如下:
打开浏览器,输入
127.0.0.1:5000/find_master/2/
结果如下:
哦耶!
Flask 入门(九)的更多相关文章
- Flask入门笔记(一)
一.程序的基本结构 1.1 最简单的Flask程序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #coding=utf-8 # 初始化 from flask import Fla ...
- Flask入门HelloWorld
Flask入门HelloWorld Flask官网:http://flask.pocoo.org/ Flask中文翻译:http://dormousehole.readthedocs.io/en/la ...
- Flask入门之结构重组(瘦身)-第13讲笔记
1. pip list Flask 0.10.1 Flask-Bootstrap 3.3.5.6 Flask-SQLAlchemy 2 Flask-Script 2.0.5 Flask-WTF 0.1 ...
- Flask入门之Bootstrap介绍使用和Flask-Nav快速导航栏
一.Bootstrap Bootstrap,来自 Twitter,是目前最受欢迎的前端框架. Python中,同样可以使用Bootstrap. 1. 导入Bootstrap库 from flask_b ...
- Flask入门之Pycharm写Hello Word
在这里记录整理Flask入门的笔记! 今天讲讲使用Pycharm写一个Hello World 前提是已经安装好Pycharm,安装过程很简单,这里不赘述. 只放两个可以提供注册码的网站: Intell ...
- 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步 ...
- Flask入门和快速上手
目录 Flask入门和快速上手 python三大主流框架对比 Flask安装 依赖 可选依赖 创建flask项目 flask最小应用--hello word 非法导入名称 调试模式 路由 唯一的 UR ...
- Flask 入门一( flask 框架和 flask-script 库)
Flask 入门一( flask 框架 和 flask-script 库) 一.Flask框架: 1.简介 Flask是一个非常小的Python Web框架,被称为微型框架:只提供了一个稳健的核心,其 ...
- C#基础入门 九
C#基础入门 九 集合 对于很多应用程序,需要创建和管理相关对象组,有两种方式可以将对象分组,一是创建对象数组,如 object[] obj=new object[3]{1,2.33,"st ...
- cesium编程入门(九)实体 Entity
cesium编程入门(九)实体 Entity 在cesium编程入门(五)绘制形状提到过添加实体的方法,这一节聊一聊实体相关的一些内容: 先来看 Entity 的各个属性 id 唯一标志,如果没设置, ...
随机推荐
- mysql 多个字段重复记录查询
select * from productstockquantity t where () ORDER BY t.CombinationI
- 前端工程师眼中的Docker
笔者最近在整理 Node.js 操作各数据库的方法,却不料遇到一个很棘手的问题:很多数据库,都需要同时下载 Server 端和 Client 端,并进行相应的配置,着实是麻烦.那有没有方法可以省去这些 ...
- Java 并发同步工具(转)
转自:https://www.jianshu.com/p/e80043ac4115 在 java 1.5 中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如 CountDownLatch,Cy ...
- 《JavaScript 模式》读书笔记(3)— 字面量和构造函数1
新的篇章开始了,本章开始,所有的内容都是十分有价值和意义的.本章主要的内容包括对象字面量.构造函数.数组字面量.正则字面量.基本值类型字面量以及JSON等.在大家的工作和实际应用中也有一定的指导意义. ...
- angular http 节流
有时候点列表但是由于查询问题,后端返回数据的速度很慢,导致回来的顺序错乱,后端解决不了,前端来 在jq年代 像标志位 防抖 节流等 在angular里使用了rxjs //错误示范 getIntelli ...
- MyBatis框架——缓存机制
使⽤缓存机制的作⽤也是减少 Java 应⽤程序与数据库的交互次数,从⽽提升程序的运⾏效率. ⽐如第 ⼀次查询出某个对象之后,MyBatis 会⾃动将其存⼊缓存,当下⼀次查询同⼀个对象时,就可以直接从 ...
- [BJDCTF 2nd]old-hack
进入首页: 首页告诉了我们是thinkphp5的漏洞. 知道了是哪个版本的话就搜一搜喽:最后发现是thinkphp5.0.23的命令执行 payload_1:查看根目录文件,发现flag位置 http ...
- Django 配置使用日志
一. Django中使用日志 Django中使用日志其实非常简单,只需要在项目使用的配置文件中(如果没有自定义,那么就是settings.py中)加以下设置即可,同时可以根据自己的需求进行修改: # ...
- MySQL数据库02
MySQL数据库 前言: 前面我们了解了什么是数据库,什么是MySQL数据库以及如何运用,接下来我们接着深入学习MySQL. (提前声明,以下所提供的事例不标准,仅供参考) 数据库的备份与还原: 备份 ...
- 洛谷 P5658 括号树 题解
原题链接 简要题意: 求出以从每个节点到根形成的括号序列的合法对数. 算法一 观察到 \(n \leq 8\) ,所以我们可以用 纯粹的暴力 . 用 \(O(n)\) 时间得出当前节点到根的字符串. ...