问题描述
我有一个由同事制作的 Django 项目,它运行良好并部署在服务器上。我在一个单独的测试 Python 项目中测试了方法和新功能,使用 Telethon 库(将用户添加到频道,从频道中删除他们,创建新频道等),并且它们在我的本地环境中运行良好,只需运行“python file.py”命令,然后在我的本地环境中使用 Quart 库进行测试。
但是,现在我想将这些功能合并到我的同事在他们的项目中制作的服务器中,以使其持续运行,并使用他们需要从 Telethon 获取的来自 Telegram 的数据。
我遇到的第一个错误是 val foo_url = System.getProperty("foo")
。
之前,我使用 Quart 作为微服务在浏览器上进行调用和请求,但如何在 Django 服务器上复制此功能?
如果我尝试运行此视图:
val httpProtocol = http
//.baseUrl("http://127.0.0.1:5000")
.baseUrl(foo_url)
我在行 Cannot send requests while disconnected
网址很简单,像这样:
async def get_all_channels(request):
try:
dialogs = await client.get_dialogs()
dialogs_str = ''
dialog_list = []
for dialog in dialogs:
dialog_type = 0
if str(type(dialog.entity)) == "<class 'telethon.tl.types.Channel'>":
type_str = 'CANAL'
elif str(type(dialog.entity)) == "<class 'telethon.tl.types.ChannelForbidden'>":
type_str = 'CANAL PROHIBIDO'
elif str(type(dialog.entity)) == "<class 'telethon.tl.types.User'>":
type_str = 'USUARIO'
else:
type_str = str(type(dialog.entity))
if type_str == 'CANAL':
has_admin_rights = dialog.entity.admin_rights is not None
else:
has_admin_rights = False
dialogs_str += '{} - {}\n'.format(dialog.name,str(dialog.id))
if has_admin_rights:
if type_str == 'CANAL':
type_str = 'CANAL CLONADO'
else:
if type_str == 'CANAL':
type_str = 'CANAL ORIGINAL'
if type_str == 'CANAL ORIGINAL':
dialog_type = 1
elif type_str == 'CANAL CLONADO':
dialog_type = 2
elif type_str == 'USUARIO':
dialog_type = 3
dialog_list.append([dialog_type,dialog.name,dialog.id])
dialog_list.sort(key=lambda dialog_list: dialog_list[0])
aux_type = -1
for dialog in dialog_list:
if dialog[0] != aux_type:
if dialog[0] == 0:
print('OTROS:')
elif dialog[0] == 1:
print('\n\nCANALES ORIGINALES:')
elif dialog[0] == 2:
print('\n\nCANALES CLONADOS:')
elif dialog[0] == 3:
print('\n\nUSUARIOS:')
aux_type = dialog[0]
print('{} (ID: {})'.format(dialog[1],str(dialog[2])))
return JsonResponse(json.dumps(dialog_list))
except:
print(traceback.format_exc())
return JsonResponse(traceback.format_exc(),safe=False)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)