WSGIRequest是什么

tech2024-04-16  16

WSGIRequest是什么

print(request) <WSGIRequest: GET '/profile/'>

https://blog.csdn.net/caoshou1866/article/details/100959164

def profile(request): # return HttpResponse("hello, success") print('request',request) user = request.user email = request.user.email created_at = request.user.created_at return HttpResponse(f"hello, {email},{created_at}") class UserProfile(AbstractUser): nickname = models.CharField(null=True, blank=True, max_length=255, verbose_name='昵称') job_title = models.CharField(max_length=50, null=True, blank=True,verbose_name='职称') introduction = models.TextField(blank=True,null=True,verbose_name='简介') picture = models.ImageField(upload_to='profile_pics/',null=True,blank=True,verbose_name='头像') location = models.CharField(max_length=50,null=True,blank=True,verbose_name='城市') personal_url = models.URLField(max_length=255, null=True, blank=True,verbose_name='个人链接') weibo = models.URLField(max_length=255,null=True,blank=True,verbose_name='微博链接') zhihu = models.URLField(max_length=255,null=True,blank=True,verbose_name='知乎链接') github = models.URLField(max_length=255,null=True,blank=True,verbose_name='github链接') created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') updated_at = models.DateTimeField(auto_now=True,verbose_name='更新时间')

实现request.user, request.user.email, request.user.created_at是因为settings.py里面中间件django.contrib.auth.middleware.AuthenticationMiddleware

二. 使用user.is_authenticated来判定用户是否登录

如果你使用user.is_authenticated判断用户是否登录,那么意味着你采用了django的auth系统, 那么你的登陆最好使用django.contrib.auth中的login方法, 该方法会为将user_id以及user_backend放入session中存储, .is_authenticated()通过判断session中是否有user_id 以及user_backend 来判断用户是否登陆。 如果,采用自己的登陆方法,那么有可能没将user_id 或者user_backend 放入session中保存。 所以你的user被django认为没有登录,虽然你已经登陆了。 最好的办法是利用django自己的登陆方法,结合该方法,判断用户是否登陆,从而决定用户的行为。

在views.py里面可以直接写user.is_authenticated进行判断

def profile(request): # return HttpResponse("hello, success") print('request',request) user = request.user email = request.user.email created_at = request.user.created_at # return HttpResponse(f"hello, {email},{created_at}") # print(request.COOKIES) # print(request.session) if user.is_authenticated: print('yes, you logined') return render(request, 'users/profile.html', {'user':user})

在templates里面的html文件里面可以

{% if user.is_authenticated %} {% endif %}

es里面的html文件里面可以

{% if user.is_authenticated %} {% endif %}
最新回复(0)