登录
首页 >  数据库 >  MySQL

peewee 获取 crud 操作对应的 sql 语句

来源:SegmentFault

时间:2023-01-22 13:26:15 109浏览 收藏

对于一个数据库开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《peewee 获取 crud 操作对应的 sql 语句》,主要介绍了MySQL、python,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

peewee 有两种获取 crud 操作对应的 sql 语句的方式:

  • 使用 logging,代理 peewee,以输出日志的方式打印 sql
  • 访问 modelinsert 等类实例的
    def save_record(user_id: int, long_url: str, short_uuid: str) -> InsertResult:
        insert_obj = TinyUrl.insert(
            user_id=user_id,
            long_url=long_url,
            long_url_hash=md5_helper.get_string_md5(long_url),
            short_uuid=short_uuid
        )
    
        sql = str(insert_obj)
        started_at = time.time()
        row_id = insert_obj.execute()
        ended_at = time.time()
    
        return InsertResult(
            tracks=[
                DBCrudTrack(
                    sql=sql,
                    pay_time=ended_at - started_at
                )
            ],
            row_id=row_id
        )

    获取查询操作的 sql

    def get_row_by_user_id_long_url_hash(user_id: int, long_url_hash: str) -> SelectResult:
        query: ModelSelect = TinyUrl.select().where(
            (TinyUrl.user_id == user_id) &
            (TinyUrl.long_url_hash == long_url_hash)
        )
        sql = str(query)
    
        start_at = time.time()
        rows: list[dict] = list(
            query.dicts()
        )
        end_at = time.time()
    
        return SelectResult(
            tracks=[
                DBCrudTrack(
                    sql=sql,
                    pay_time=end_at - start_at
                )
            ],
            rows=[
                Row(**row)
                for row in rows
            ]
        )

    今天带大家了解了MySQL、python的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>