zoukankan      html  css  js  c++  java
  • 【Flask】Sqlalchemy 增删该查操作

    ### sqlalchemy 增删改查操作, 通过session来进行操作。

     1 # coding:utf-8
     2 # Author: liangjun.
     3 
     4 from sqlalchemy import create_engine, Column, Integer, String
     5 from sqlalchemy.ext.declarative import declarative_base
     6 from sqlalchemy.orm import sessionmaker
     7 
     8 HOSTNAME = '127.0.0.1'
     9 PORT = 3306
    10 DATABASE = 'sqlalchemy_first'
    11 USERNAME = 'root'
    12 PASSWORD = '123456'
    13 
    14 DB_URI = 'mysql+pymysql://{username}:{password}@{host}:{port}/{dbname}?charset=utf8'.format(
    15         username=USERNAME, password=PASSWORD, host=HOSTNAME, port=PORT, dbname=DATABASE
    16 )
    17 engine = create_engine(DB_URI)
    18 Base = declarative_base(engine)
    19 Session = sessionmaker(engine)
    20 session = Session()
    21 
    22 
    23 # 创建ORM模型
    24 class Person(Base):
    25     __tablename__ = 'person'
    26     id = Column(Integer, primary_key=True, autoincrement=True)
    27     name = Column(String(length=50))
    28     age = Column(Integer)
    29 
    30     def __repr__(self):
    31         return "Person<name:{}, age{}>".format(self.name, self.age)
    32 
    33 
    34 def add_data():
    35     p1 = Person(name='saber', age=18)
    36     p2 = Person(name='slamdunk', age=18)
    37     # 添加一条
    38     session.add(p1)
    39     # 添加多条记录
    40     session.add(p1, p2)
    41     session.commit()
    42 
    43 
    44 def update_data():
    45     person = session.query(Person).first()
    46     person.name = 'saber007'
    47     session.commit()
    48 
    49 
    50 def search_data():
    51     # 查找所有
    52     persons_1 = session.query(Person).all()
    53     for person in persons_1:
    54         print person
    55 
    56     # filter_by
    57     persons_2 = session.query(Person).filter_by(name='saber').all()
    58     for _p in persons_2:
    59         print _p
    60 
    61     # filter
    62     persons_3 = session.query(Person).filter(Person.name == 'saber').all()
    63     for _p in persons_3:
    64         print _p
    65 
    66     # get
    67     # 根据主键查找, 如没有则返回None
    68     person = session.query(Person).get(1)
    69     print "---------------get------------------"
    70     print person
    71 
    72     # first
    73     # 获取结果集中的第一条
    74     person = session.query(Person).first()
    75     print person
    76 
    77 
    78 def delete_data():
    79     person = session.query(Person).first()
    80     session.delete(person)
    81     session.commit()
    82 
    83 if __name__ == "__main__":
    84     # add_data()
    85     # search_data()
    86     # update_data()
    87     delete_data()
  • 相关阅读:
    如何利用好chrome控制台这个神器好好调试javascript代码
    关于前端学习和笔试面试的总结
    当推荐算法开源包多如牛毛,为什么我们还要专门的推荐算法工程师
    关键词匹配项目深入研究(二)- 分表思想的引入
    PHP如何快速读取大文件
    整理了一些有用的网址,不喜勿喷
    Chrome控制台 JS调试的一些小技巧
    安装最新版本的PHPUnit后,不能使用
    PHP API接口测试小工具
    PHP Log时时查看小工具
  • 原文地址:https://www.cnblogs.com/chen0427/p/8620479.html
Copyright © 2011-2022 走看看