Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flask 基本身份验证-无法使用创建的用户登录_Flask_Airflow - Fatal编程技术网

Flask 基本身份验证-无法使用创建的用户登录

Flask 基本身份验证-无法使用创建的用户登录,flask,airflow,Flask,Airflow,我有这里提到的类似情况 因此,我创建如下用户: import airflow from airflow import models, settings from airflow.contrib.auth.backends.password_auth import PasswordUser user = PasswordUser(models.User()) user.username = 'new_user_name' user.email = 'new_user_email@example.c

我有这里提到的类似情况

因此,我创建如下用户:

import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'new_user_name'
user.email = 'new_user_email@example.com'
user._set_password = 'set_the_password'.encode('utf8')
session = settings.Session()
session.add(user)
session.commit()
session.close()
并创建用户。有点。 如果我退出pythonshell并再次启动它,我可以看到用户在做什么

session.query(PasswordUser).all()

但当我尝试登录时,我会得到“不正确的登录详细信息”。我检查了所有我能从气流中抓到的原木,什么也没有得到。只要一个班轮。
此外,我还检查了我使用的postgres db。由于某种原因,表“users”是空的。虽然如果我删除此表,用户创建会失败,所以我甚至不知道该用户保存在哪个位置。

所以我发现当我从控制台运行airflow时,它使用的数据库与在webserver上运行时不同。我使用它作为样板在docker中设置我的实例。所以,若我在某个dag任务中插入所需的脚本并从Web服务器运行它,它会完全填充我的postgres数据库,然后我可以使用创建的用户登录。
为什么在控制台中使用不同的db?我仍然不知道,这是不同的问题。

我刚刚发生了完全相同的事情。。。我只是使用了正确的URI字符串,就像这样

import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'user'
user.email = 'user@email.com'
user.password = 'password'

# the secret sauce is right here
from sqlalchemy import create_engine
engine = create_engine("postgresql://airflow:airflow@postgres:5432/airflow")

session = settings.Session(bind=engine)
session.add(user)
session.commit()
session.close()
exit()
您也可以使用PyCharm Pro或直接连接到db


现在我要解决的问题是,尽管更改了配置文件,它仍然没有提示我登录

无法通过控制台添加用户,我可以像您一样通过DAG任务插入用户。你知道气流为什么会这样吗?谢谢。。。我来试试这个。关于您要解决的其他问题,您的意思是您无法看到airflow登录页面?它已自行更正。。不确定是我在做更新,还是我在尝试的其他事情。。但现在一切都好了。。希望以上能有所帮助。。
import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'user'
user.email = 'user@email.com'
user.password = 'password'

# the secret sauce is right here
from sqlalchemy import create_engine
engine = create_engine("postgresql://airflow:airflow@postgres:5432/airflow")

session = settings.Session(bind=engine)
session.add(user)
session.commit()
session.close()
exit()