guguyuyu 发表于 2020-5-31 17:46

python web求助大神

问题如图片:

guguyuyu 发表于 2020-5-31 17:48

{:1_937:}
authenticate(username=username,password=password)
次方法官方文档也是这样写的呀,为什么返回值是个字段。而且HTML页面也得不到登录的值login(request, user),登录失败

247700432 发表于 2020-5-31 18:15

你用 type(user)   获取它的类型。import 导入 这个文件, 你就可以自己查看他的属性了。你直接打印,他就是直接返回字符串的。

人生苦短丶 发表于 2020-5-31 18:45

以前学python的时候也没看源码但是后来学java的时候,print里面会自动调用toString方法。。python是不是也是同样的道理?

guguyuyu 发表于 2020-5-31 18:49

247700432 发表于 2020-5-31 18:15
你用 type(user)   获取它的类型。import 导入 这个文件, 你就可以自己查看他的属性了。你直接打印,他 ...

{% if user.is_authenticated %}
      <h3>欢迎您,{{ user.username }}</h3>
    {% else %}
      欢迎您,<a href="{% url 'accounts:user_login' %}">请登录</a>
    {% endif %}

你好,但是我登录后,user.is_authenticated这个方法不会只想,直接显示请登录,这是什么原因呢

guguyuyu 发表于 2020-5-31 19:00

人生苦短丶 发表于 2020-5-31 18:45
以前学python的时候也没看源码但是后来学java的时候,print里面会自动调用toString方法。。python是不是 ...

我这个问题是前台明文登录账号+密码,用python校验数据库密文账号+密码的一个方法。然后执行登录,会在跳转的页面都保持这个账号的登录状态。

likujy2061 发表于 2020-5-31 20:04

首先你得明白print的作用是什么,然后去理解一下类中__str__魔法方法的作用是什么,print如果是打印一个对象,其实是打印这个对象的__str__方法。所以你这个user对象通过效验后,实际代表的是zhangsan这个用户。而print他,则输出这个对象的__str方法的结果,也就是打印这个用户的username

247700432 发表于 2020-6-1 11:50

guguyuyu 发表于 2020-5-31 18:49
{% if user.is_authenticated %}
      欢迎您,{{ user.username }}
    {% else %}


我现在都是前后端分离了,我记得不太清楚了,django石油的前后文中间件。你登录后所有属性都放在了user中,你前段直接输出user就行,不要带user.is_authenticated
页: [1]
查看完整版本: python web求助大神