Other articles


  1. sqlalchemy序列化为json

    为什么需要这个需求?

    sqlalchemy 是个好东西,虽然其文档犹如/老太婆的裹脚布--又臭又长/,饱受诟病

    使用restful 时sqlalchemy返回的是一个object 类,假设前后端分离,前端无法处理

    如何实现?

    直接给出代码

    class Serializer(object):
    
          def __init__(self, instance, many=False, include=[], exclude=[], depth=2):
              self.instance = instance
              self.many = many
              self.include = include
              self …

    read more

    There are comments.

  2. sqlalchemy常见数据类型及配置

    类型名称python类型描述
    Integerint常规整形,通常为32位
    SmallIntegerint短整形,通常为16位
    BigIntegerint或long精度不受限整形
    Floatfloat浮点数
    Numericdecimal.Decimal定点数
    Stringstr可变长度字符串
    Textstr可变长度字符串,适合大量文本
    Unicodeunicode可变长度Unicode字符串
    Booleanbool布尔型
    Datedatetime.date日期类型
    Timedatetime.time时间类型
    Intervaldatetime.timedelta时间间隔
    Enumstr字符列表 …
    read more

    There are comments.

  3. sqlalchemy学习(一)

    sqlalchemy

    系统的学一下sqlalchemyA,不过没有中文文档,只能用我的渣英文能力慢慢看原文档了

    数据库连接

    >>> from sqlalchemy import create_engine
    >>> engine = create_engine('sqlite:///:memory:', echo=True)
    

    echo为True输出日志

    各种数据库连接方式

    dialect+driver://username:password@host:port/database
    
    1. Postgresql

      # default
      engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')
      # psycopg2
      engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')
      # pg8000
      engine = create_engine('postgresql+pg8000://scott:tiger …
    read more

    There are comments.

  4. flask-sqlalchemy使用

    简单的例子这里已经有了
    中文 这里记录一下平时我遇到的一些问题

    一对多

    需求:一个问题对应多个回复
    下面给出代码(字段不完整)

    class Questions(db.Model):
        __tablename__ = 'questions'
        id = db.Column(db.Integer, primary_key=True)
        title = db.Column(db.String(50), nullable=False)
        content = db.Column(db.Text, nullable=False)
    
        def __init__(self,title,content):
            self.title = title
            self.content = content …
    read more

    There are comments.

  5. 关于sqlalchemy的desc

    也就是降序排序

    简单使用

    questions = Questions.query.order_by(Questions.time.desc()).all()

    设置默认排序

    如果几乎所有的questions都是按照时间降序排序,总不能每一条语句都加上order_by(Questions.time.desc())
    所以设置默认排序是有效的

    class Questions(db.Model):
        __tablename__ = 'questions'
        id = db.Column(db.Integer, primary_key=True)
        title = db.Column(db.String(50), nullable=False)
        content = db.Column(db.Text, nullable=False)
        time = db.Column …
    read more

    There are comments.

  6. 关于sqlalchemy的filter_by与filter

    都可看做是where但用法不一样

    filter_by

    question = Questions.query.filter_by(id=1).first()
    

    filter

    question = Questions.query.filter(Questions.id==1).first()
    

    其实就是===还有是否带类名的区别
    如果要select * from questions where id < 5
    这时只能使用filter

    questions = Questions.query.filter(Questions.id < 5).all()
    

    多个条件

    question = Questions.query.filter_by(name='hello',id=5).first()
    # 或者 …
    read more

    There are comments.