请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

peewee-async可以执行原生sql么

如果个别查询需要用原生SQL来异步执行,peewee-async可以做么?该如果执行?

正在回答

3回答

可以啊 peewee_async.execute 这个可以执行你的sql语句

0 回复 有任何疑惑可以回复我~
  • 提问者 烈焰卡卡 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-07-03 10:28:53
  • 提问者 烈焰卡卡 #2
    老师我挖个坟。。。我按照您说的,直接await peewee_async.execute执行sql语句是会直接报错的。现在有一些复杂点的sql,用orm不好做,用peewee的SQL方法,会默认同步执行,请问您能给个异步执行原生sql的示例么
    回复 有任何疑惑可以回复我~ 2020-06-01 17:44:03
  • bobby 回复 提问者 烈焰卡卡 #3
    具体报错信息是什么 你可以把测试代码写好 我本地测试一下
    回复 有任何疑惑可以回复我~ 2020-06-02 17:16:38
提问者 烈焰卡卡 2020-06-04 16:59:01

正确做法

sql = """select * from operationlog"""
res = await peewee_async.execute(peewee.RawQuery(sql=sql, _database=database))

0 回复 有任何疑惑可以回复我~
提问者 烈焰卡卡 2020-06-02 17:28:48
[2020-06-02 17:25:15 handler.py:wrapper:24 INFO] Error, trying to run raw_query coroutinewith wrong query class select * from operationlog
[2020-06-02 17:25:15 handler.py:wrapper:25 ERROR] Traceback (most recent call last):
      File "W:\Project\package-management\package_management\handler.py", line 22, in wrapper
        await fun(handler, *args, **kwargs)
      File "W:\Project\package-management\apps\package\handler.py", line 99, in get
        code, msg, data = await PackageService.get_package_detail(self, package_id)
      File "W:\Project\package-management\apps\package\services.py", line 90, in get_package_detail
        res = await peewee_async.execute(sql)
      File "C:\Users\wanhw\Envs\package_management\lib\site-packages\peewee_async.py", line 430, in execute
        return (await coroutine(query))
      File "C:\Users\wanhw\Envs\package_management\lib\site-packages\peewee_async.py", line 675, in raw_query
        "with wrong query class %s" % str(query))
    AssertionError: Error, trying to run raw_query coroutinewith wrong query class select * from operationlog
    
[2020-06-02 17:25:15 web.py:log_request:2246 ERROR] 500 GET /package/packages/17 (127.0.0.1) 3.99ms

sql = """select * from operationlog"""
res = await peewee_async.execute(sql)

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信