zoukankan      html  css  js  c++  java
  • 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/

    结果如下:

    哦耶!

  • 相关阅读:
    Mybatis里Mapper.xml加强
    在eclipse中怎么把一个普通的项目变成一个maven项目
    给自己写博客定的小标准
    五一假期的惬意生活~
    MAC上postman离线安装时提示加载扩展程序出错怎么办?
    2017-4-6 四月生花,冷暖自知
    微信小程序开发过程中tabbar页面显示的相关问题及解决办法!
    微信小程序中如何实现分页下拉加载?(附源码)
    利用stylist插件,简单两步屏蔽新浪微博上的广告
    微信小程序官方指南手册,教你如何使用微信小程序!
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700686.html
Copyright © 2011-2022 走看看