我正在使用 Django 频道进行聊天应用程序。此应用程序可能会在一段时间内扩展到 10 万个并发用户。我想知道 Django Channels 可以处理多少并发连接。基本上,我将它与 XMPP 服务器进行比较,XMPP 是可扩展性的更好选择还是我应该继续使用 Django 频道?
另外,我使用 redis 层作为通道层。我想知道 redis 层是否会在某个时间点成为瓶颈?
谢谢
我正在使用 Django Rest 框架来制作 API。除此之外,我还使用 Google Cloud Storage 来存储媒体文件。我有几个问题:
如何使用 django rest 框架生成签名文件 url?我一直在用相同的方式搜索网络,但无法获得清晰的图片。关联
那么,如果我删除了数据库中的文件,它是否也会从 Google 云存储中自动删除?
提前致谢!!!
django django-models google-cloud-storage django-rest-framework
我正在使用 pycharm,为此我正在使用 python virtualenv。
我使用penv\Scripts\activate.bat命令激活 virtualenv 。但是当我运行时pip install requests,它被安装在全局文件夹而不是本地 virtualenv 文件夹中。我不明白为什么会这样。
输出where python如下:
E:\app-backend\penv\Scripts\python.exe
C:\Users\Hardik\AppData\Local\Programs\Python\Python37\python.exe
Run Code Online (Sandbox Code Playgroud)
输出where pip如下:
E:\app-backend\penv\Scripts\pip.exe
C:\Users\Hardik\AppData\Local\Programs\Python\Python37\Scripts\pip.exe
Run Code Online (Sandbox Code Playgroud)
我一次又一次地尝试过,但它总是在全局文件夹中安装任何包。但是当我使用E:\app-backend\penv\Scripts\pip.exeinstall of运行任何命令时pip,它会在本地 virtualenv 中安装该包。
谁能告诉我这里发生了什么?
我想了解Python解释器的功能。我了解操作码的生成过程,并希望更好地理解解释器部分。为此,我在互联网上阅读了很多内容,并了解了python 解释器(Cpython)中的文件for (;;)循环ceval.c。
现在我想解释以下Python代码a.py:
a = 4
b = 5
c = a + b
Run Code Online (Sandbox Code Playgroud)
当我做python -m dis a.py
1 0 LOAD_CONST 0 (4)
2 STORE_NAME 0 (a)
2 4 LOAD_CONST 1 (5)
6 STORE_NAME 1 (b)
3 8 LOAD_NAME 0 (a)
10 LOAD_NAME 1 (b)
12 BINARY_ADD
14 STORE_NAME 2 (c)
16 LOAD_CONST 2 (None)
18 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)
现在我已将调试点switch(opcode)放入ceval.c. 现在,当我启动调试器时,它会出现这个位置 2000 多次。我认为这是因为在开始之前,Python 还必须做一些其他的解释工作。所以,我的问题是如何仅调试相关的操作码指令?
基本上,我如何知道我正在调试的指令实际上来自我创建的程序?
请帮我解决同样的问题。提前致谢。
我使用 Django 进行日志记录配置如下:
LOGGING = {
'version':1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{asctime} {process:d} {thread:d} {levelname} {name} {module} {funcName} {message}',
'style': '{',
}
},
'handlers': {
'file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': BASE_DIR+'/logs/django_logs.log',
'backupCount': 14,
'maxBytes': 52428800,
'formatter': 'verbose'
}
},
'loggers': {
'': {
'handlers': ['file'],
'level': 'INFO'
}
},
}
Run Code Online (Sandbox Code Playgroud)
我正在运行 16 个 django 进程,几个用于 websocket 的 daphne 和几个用于基于 django Rest 框架的正常 API 调用的 Gunicorn 进程。但是当我查看日志时,会同时记录多个文件。例如,django_logs.1 .... django.logs.14 同时登录。我是否必须添加其他内容来一次记录到一个文件,并仅在其大小超过日志文件的指定大小时才轮换它?
有关额外信息,我使用 python 3.6.8 并在每个项目文件中初始化记录器,如下所示:
import logging …Run Code Online (Sandbox Code Playgroud) python django python-3.x django-rest-framework python-logging