[英]RuntimeError at /accounts/register/ There is no current event loop in thread 'Thread-1'
I want to implement an email verification in my django app so, I am using an external module verify_email in that there is a function called verify_email() to check whether an entered email address exists or not. I want to implement an email verification in my django app so, I am using an external module verify_email in that there is a function called verify_email() to check whether an entered email address exists or not. In my view.py file I am checking if the mail is valid then a user is created but, the problem is the function verify_email() takes some time to get the result.在我的 view.py 文件中,我正在检查邮件是否有效,然后创建了一个用户,但是问题是 function verify_email() 需要一些时间才能获得结果。 I think we need to use some kind of await statement to wait for the result but I am getting errors like this when I try to use it normally.我认为我们需要使用某种 await 语句来等待结果,但是当我尝试正常使用它时出现这样的错误。
This is the pypi project link.这是 pypi 项目链接。
def register(request):
if(request.method == 'POST'):
email = request.POST['email']
password = request.POST['pass']
username = request.POST['username']
check = verify_email(email)
if check:
user = User.objects.create_user(username,email,password)
user.save()
return redirect('/')
else:
messages.info(request,'email invalid')
return redirect('register')
Description of the error:错误描述:
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/accounts/register/
Django Version: 3.2.3
Python Version: 3.8.5
Traceback (most recent call last):
File "/home/akshith/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/home/akshith/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/akshith/Desktop/django-app/testing/final (copy)/accounts/views.py", line 55, in register
check = verify_email(email)
File "/home/akshith/.local/lib/python3.8/site-packages/verify_email/verify_email.py", line 103, in verify_email
loop = asyncio.get_event_loop()
File "/usr/lib/python3.8/asyncio/events.py", line 639, in get_event_loop
raise RuntimeError('There is no current event loop in thread %r.'
Exception Type: RuntimeError at /accounts/register/
Exception Value: There is no current event loop in thread 'Thread-1'.
Is there a way to use asyncio or any other ways to deal with this kind of error?有没有办法使用 asyncio 或任何其他方式来处理这种错误?
Do you really think that the user should proceed even without email verification?你真的认为即使没有 email 验证用户也应该继续? It usually takes atleast few seconds to verify email on any website, So that should not be a problem.在任何网站上验证 email 通常至少需要几秒钟,所以这应该不是问题。 And for Concurrent requests you don't need to worry because django handles them very efficiently.对于并发请求,您无需担心,因为 django 可以非常有效地处理它们。
And sorry, I didn't had enough reputation to comment:)抱歉,我没有足够的声誉发表评论:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.