小编Mah*_*chi的帖子

异步函数以同步(串行)方式运行,任务相互阻塞

我使用 asyncio 没有获得任何加速。此代码片段仍然以与同步作业相同的方式运行。大多数示例使用 asyncio.sleep() 来施加延迟,我的问题是如果部分代码根据输入参数造成延迟怎么办?

async def c(n):
    #this loop is supposed to impose delay
    for i in range(1, n * 40000):
        c *= i
   return n

async def f():
    tasks = [c(i) for i in [2,1,3]]
    r=[]
    completed, pending = await asyncio.wait(tasks)
    for item in completed:
        r.append(item.result())

    return r

if __name__=="__main__":
    loop = asyncio.get_event_loop()
    k=loop.run_until_complete(f())
    loop.close()
Run Code Online (Sandbox Code Playgroud)

我期望得到 [1,2,3] 但我没有(串行运行时也没有时间差)

python python-asyncio

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

Django多用户登录和注销

两个相同类型的用户登录。当其中一个用户更改选项卡时,现在该用户是最后登录的用户({{ user.username }} 更改)。

对我来说更重要的问题是,一旦其中一个注销,另一个就会自动注销。基本上,没有两个用户,一次只有一个,最后登录的用户。
此外,所有视图都是@login_required。

@login_required
def user_logout(request):
    logout(request)
    return HttpResponseRedirect(reverse('login'))


def user_login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(username=username, password=password)
        if user:
            login(request, user)
            return HttpResponseRedirect(reverse('success_page'))
        else:
            return render(request, 'login.html')
    else:
        return render(request, 'login.html')
Run Code Online (Sandbox Code Playgroud)

在 settings.py 中:

SESSION_COOKIE_AGE = 24*60*60
LOGIN_URL = '/login/'
Run Code Online (Sandbox Code Playgroud)

我的基本用户表单:

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User

class SignUpForm(UserCreationForm):
    email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')

    class Meta:
        model = User
        fields = ('username', 'email', …
Run Code Online (Sandbox Code Playgroud)

django django-authentication

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