Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.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
Python 获取Flask中的当前用户id_Python_Flask_Flask Wtforms_Flask Login - Fatal编程技术网

Python 获取Flask中的当前用户id

Python 获取Flask中的当前用户id,python,flask,flask-wtforms,flask-login,Python,Flask,Flask Wtforms,Flask Login,我对Python非常陌生(老实说,一般来说,编程也是如此)。我目前正在做一种待办事项列表,我需要它将待办事项放入适当的课程中(所有这些都与教育相关)。所以,问题很简单。我将此作为烧瓶驱动路线: @app.route('/add_course', methods=('GET', 'POST')) @login_required def course(): form = forms.CourseForm() if form.validate_on_submit():

我对Python非常陌生(老实说,一般来说,编程也是如此)。我目前正在做一种待办事项列表,我需要它将待办事项放入适当的课程中(所有这些都与教育相关)。所以,问题很简单。我将此作为烧瓶驱动路线:

@app.route('/add_course', methods=('GET', 'POST'))
@login_required
def course():
    form = forms.CourseForm()
    if form.validate_on_submit():
        models.Course.create(teacher=g.user._get_current_object(),
                             name=form.name.data.strip(),
                             difficulty=form.level.data.strip(),
                             description=form.description.data.strip())
        flash("Course successfully created!", "success")
        return redirect(url_for('index'))
    return render_template('add_course.html', form=form)
然后我在
forms.py
中找到了这个。你可以看到我做的聪明的标记,它指出了我的问题所在。它说的是问题

def courses():
    try:
        courses = models.Course.select(models.Course.id,
                                   models.Course.name,
                                   models.Course.difficulty).where(THE_PROBLEM)
        course_list = []
        for course in courses:
            course_list.append((str(course.id), course.name + ' - ' + course.difficulty.title()))
        return course_list
    except models.DoesNotExist:
        return [('', 'No courses')]


class ToDoForm(FlaskForm):
    name = StringField("What's up?", validators=[
    DataRequired()
    ])
    due_date = DateTimeField('When?', format='%Y-%m-%d %H-%M')
    course = SelectField('Course', choices=courses())
    priority = SelectField('Priority',
                           choices=[('high', 'High priority'),
                                    ('medium', 'Normal priority'),
                                    ('low', 'Low priority')],
                           validators=[
                               DataRequired()
                           ])
    description = TextAreaField('Description')
所以,是的,我正在寻找的是传递当前登录的所有者(本例中为教师)id的方法。我使用此函数
courses()
ToDoForm
中字段
courses
的choices属性构建元组列表。我需要将当前登录教师的id传递到此函数中,以便它可以评估此已通过的教师是否有与其id匹配的课程。我尝试使用
current\u user.\u get\u current\u object()
以及其他任何内容,但这只会给我造成大量错误


任何帮助、建议或建议都将不胜感激。我真的希望我在这里说的话(以及我想要实现的目标)是可以理解的

如果有人遇到同样令人沮丧的问题,解决方法是非常简单的。将外部类封装到函数中,并将所需变量作为参数传递,然后将它们用于您的核心内容。
请不要忘记返回该类的实例。

您没有说明用户登录时发生的情况,但我怀疑您需要的是会话管理。当用户登录配置文件时,应将其与数据库中的进行比较。成功后,将启动一个用户会话,从那里您可以存储您可能感兴趣的任何初始值,在本例中是用户id。这听起来正确吗?嗯,我打赌这不是不言自明的。对不起。我在app.py中实例化了LoginManager(上面作为第一个代码块给出),在forms.py中实例化了表单(第二个代码块)。一切正常,没有问题。我只是想帮忙问另一个问题——我如何提供当前用户的id?换句话说,我想构建一个如下的查询“从课程中选择名称,难度,教师id=**当前登录用户**。这对我来说是个问题,因为此评估过程是在forms.py中进行的,而不是在app.py中。@SergeyOrlov-
来自flask\u login import current\u user
@pjcunningham它已导入。如何从该对象检索id?@SergeyOrlov-
当前用户。获取\u id()
-我在考虑安全性。