Que es WSGIRequest

Que es WSGIRequest

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

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

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlinking. Se recomienda guardar la imagen y subirla directamente (img-Om2EFxbS-1599126528137) (C: \ Users \ 93623 \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200902170558707.png)]

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='更新时间')

La realización de request.user, request.user.email, request.user.created_at se debe al middleware django.contrib.auth.middleware.AuthenticationMiddleware en settings.py

2. Utilice user.is_authenticated para determinar si el usuario inició sesión.

Si utiliza user.is_authenticated determinar si el usuario está conectado, significa que está utilizando el sistema de autenticación de Django,
lo mejor es utilizar su nombre de usuario django.contrib.authmétodo de inicio de sesión,
este método proporcionará el user_idbien user_backenden el almacenamiento de sesión,
.is_authenticated () Juzgue si el usuario ha iniciado sesión juzgando si existe user_idy user_backenden la sesión .
Si utiliza su propio método de inicio de sesión, es posible que no guarde user_idni user_backenden sessionel archivo.
Por lo tanto, django considera que su usuario no inició sesión, aunque sí lo haya hecho.
La mejor manera es utilizar el método de inicio de sesión propio de Django, combinado con este método, para determinar si el usuario ha iniciado sesión y, por lo tanto, determinar su comportamiento.

En el views.pyque puedes escribir directamente user.is_authenticatedpara juzgar

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})

Puede estar en el archivo html en plantillas.

{
    
    % if user.is_authenticated %}

{
    
    % endif %}

El archivo html en es puede ser

{
    
    % if user.is_authenticated %}

{
    
    % endif %}

Supongo que te gusta

Origin blog.csdn.net/weixin_46129834/article/details/108389767
Recomendado
Clasificación