小编Ris*_*sal的帖子

django:redis:CommandError: 你还没有设置ASGI_APPLICATION,这是运行服务器所需要的

我正在尝试在 Django 中创建套接字。我按照这个链接安装了 asgi_redis 。当我运行命令 python manage.py runserver 时,出现以下错误。

>python manage.py runserver
CommandError: You have not set ASGI_APPLICATION, which is needed to run the server.
Run Code Online (Sandbox Code Playgroud)

由于我还没有启动redis,上面的错误可能是因为这个。我有点困惑,我需要单独安装Redis还是只需要启动redis,因为我已经安装了asgi_redis?

redis 的 project/settings.py 文件条目。

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'asgi_redis.RedisChannelLayer',
        'CONFIG': {
            'hosts': [('localhost', 6379)],
        },
        'ROUTING': 'example_channels.routing.channel_routing',
    }
}
Run Code Online (Sandbox Code Playgroud)

python django redis

8
推荐指数
1
解决办法
5495
查看次数

如何初始化全局对象或变量并在每个 FastAPI 端点中重用它?

我正在上一堂发送通知的课。初始化时,它涉及到与通知服务器的连接,这非常耗时。我在 FastAPI 中使用后台任务来发送通知,因为我不想因通知而延迟响应。下面是示例代码。

file1.py:
noticlient = NotificationClient()

@app.post("/{data}")
def send_msg(somemsg: str, background_tasks: BackgroundTasks):
    result = add_some_tasks(data, background_tasks, noticlient)
    return result

file2.py:
def add_some_tasks(data, background_tasks: BackgroundTasks, noticlient):
    background_tasks.add_task(noticlient.send, param1, param2)
    result = some_operation
    return result
Run Code Online (Sandbox Code Playgroud)

这里,通知客户端是全局声明的。我可以在file2.pyunder中初始化它add_some_tasks,但每次请求到达时它都会被初始化,这需要一些时间。有什么办法可以使用中间件在每次请求到达时重新使用它,这样就不需要每次都进行初始化。

或方法二:在类 def 中初始化通知

file1.py:
class childFastApi(FastAPI):
    noticlient = NotificationClient()

app = childFastApi()

@app.post("/{data}")
def send_msg(somemsg: str, background_tasks: BackgroundTasks):
    result = add_some_tasks(data, background_tasks, app.noticlient)
    return result
Run Code Online (Sandbox Code Playgroud)

python global-variables background-task starlette fastapi

8
推荐指数
1
解决办法
6145
查看次数

使用 Fuzzywuzzy 时出错:UserWarning: Using slow pure-python SequenceMatcher。安装 python-Levenshtein 来消除这个警告

我得到低于错误。有没有办法在不安装 python-Levenshtein 的情况下修复它,如果没有,那么如何在 linux 上安装 python-Levenshtein。

UserWarning: Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning
  warnings.warn
Run Code Online (Sandbox Code Playgroud)

python sequencematcher fuzzywuzzy

7
推荐指数
1
解决办法
1万
查看次数

如何在代码中使用Python覆盖率

我想从代码内部捕获覆盖范围。我尝试了下面的一种,但出现错误。请参阅以下链接了解覆盖 API。 https://coverage.readthedocs.io/en/v4.5.x/api.html#api

import os
import pandas as pd
import sys
import requests
import xml.etree.ElementTree as ET
from xml.dom import minidom
import coverage

cov = coverage.Coverage()
cov.start()

#actual code

cov.stop()
cov.save()

cov.html_report(directory='covhtml')
Run Code Online (Sandbox Code Playgroud)

低于错误

CoverageException                         Traceback (most recent call last)
<ipython-input-15-2047badbbd57> in <module>()
     48 cov.save()
     49 
---> 50 cov.html_report(directory='covhtml')

C:\Users\\Anaconda2\lib\site-packages\coverage\control.pyc in html_report(self, morfs, directory, ignore_errors, omit, include, extra_css, title, skip_covered)
   1093             )
   1094         reporter = HtmlReporter(self, self.config)
-> 1095         return reporter.report(morfs)
   1096 
   1097     def xml_report(

C:\Users\\Anaconda2\lib\site-packages\coverage\html.pyc in report(self, morfs)
    137 
    138 …
Run Code Online (Sandbox Code Playgroud)

python code-coverage

4
推荐指数
1
解决办法
2258
查看次数