コード例 #1
0
def user_info():  # 修改个人信息
    user = query_user_by_name(session.get("user_name"))

    # 打开修改信息页面,将原来信息展示出来,消息回填

    form = InfoForm()
    if form.validate_on_submit():

        current_login_name = session.get("user_name")
        old_name = user.name
        new_name = request.form["user_name"]

        query_user = query_user_by_name(new_name)
        if query_user == None or current_login_name == query_user.name:  # 如果数据库没有这个用户名或者当前登录的用户名和更改的用户名一样(本人操作),都可以更新个人信息
            user.name = request.form["user_name"]
            user.email = request.form["user_email"]
            user.age = request.form["user_age"]
            user.birthday = request.form["user_birthday"]
            filestorage = request.files["user_face"]  # 获取头像文件
            # filestorage = form.user_face.data  # 获取头像文件
            if filestorage.filename != "":
                # # 检查用户上传的头像文件名是否符合要求
                # if not check_files_extension([form.user_face.data.filename], ALLOWED_IMAGEEXTENSIONS):
                #     flash("头像文件格式错误!", category="err")
                #     return redirect(url_for("user_info"))
                # 若果上传了新的头像文件,首先删除旧的,再保存新的
                # user_folder = os.path.join(app.config["UPLOADS_FOLDER"], old_name)
                # 删除就旧的头像
                # os.remove(path=os.path.join(user_folder, user.face))
                # 获取旧头像的存储路径
                userface_path = photosSet.path(filename=user.face,
                                               folder=old_name)
                # 删除就旧的头像
                os.remove(userface_path)

                # 保存新的
                user.face = secure_filename_with_uuid(filestorage.filename)
                # filestorage.save(os.path.join(user_folder, user.face))
                photosSet.save(storage=filestorage,
                               folder=old_name,
                               name=user.face)
                pass
            # 判断是否修改了用户名:如果修改了则同时修改用户上传资源文件夹
            if old_name != new_name:
                os.rename(os.path.join(app.config["UPLOADS_FOLDER"], old_name),
                          os.path.join(app.config["UPLOADS_FOLDER"], new_name))
                pass
            update_user_by_name(old_name, user)
            flash(message="用户信息已更新!", category="ok")
            session.pop("user_name", None)  # 修改密码后需要重新登录,然后清除session中的数据
            session["user_name"] = user.name
            return redirect(url_for("user_detail"))
        else:
            flash(message="用户名已存在!", category="err")

    return render_template("user_info.html", user=user, form=form)
コード例 #2
0
def user_regist():
    form = RegistForm()
    if form.validate_on_submit():
        # 查看用户名是否已经存在
        user_name = form.user_name.data
        user_x = query_user_by_name(user_name)
        if user_x:
            flash("用户名已经存在!", category='err')
            return render_template('user_regist.html', form=form)
        # 如果用户不存在,执行注册
        user = User()
        user.name = form.user_name.data
        user.pwd = form.user_pwd.data
        user.email = form.data['user_email']
        user.age = form.user_edge.data
        user.birthday = form.data["user_birthday"]
        filestorage = request.files["user_face"]
        user.face = secure_filename_with_uuid(filestorage.filename)
        # 如果用户不存在,执行插入操作
        insert_user_to_db(user)
        # 保存用户头像文件
        user_folder = os.path.join(app.config["UPLOADS_FOLDER"], user.name)
        create_folder(user_folder)
        filestorage.save(os.path.join(user_folder, user.face))
        flash("用户注册成功!", category='ok')
        return redirect(url_for("user_login", username=user.name))
    return render_template('user_regist.html', form=form)
コード例 #3
0
def user_info():
    form = InfoForm()
    user = query_user_by_name(session.get("user_name"))
    if form.validate_on_submit():
        old_name = user.name
        user.name = form.data["user_name"]
        user.email = form.data["user_email"]
        user.age = form.data["user_edge"]
        user.birthday = form.data["user_birthday"]
        filestorage = form.user_face.data
        # 判断用户是否上传了新的头像文件
        if filestorage.filename != "":
            # 如果上传了符合要求的新的头像文件,则首先删除旧的,再保存新的
            user_folder = os.path.join(app.config["UPLOADS_FOLDER"], old_name)
            os.remove(path=os.path.join(user_folder, user.face))
            # 更新 user.face 中保存的头像文件名
            user.face = secure_filename_with_uuid(filestorage.filename)
            filestorage.save(os.path.join(user_folder, user.face))

        # 如果用户修改了用户名, 就修改用户的上传文件夹
        if old_name != user.name:
            os.rename(os.path.join(app.config["UPLOADS_FOLDER"], old_name),
                      os.path.join(app.config["UPLOADS_FOLDER"], user.name))
        # 更新数据项
        update_user_by_name(old_name, user)
        session["user_name"] = user.name
        return redirect(url_for("user_detail"))
    return render_template("user_info.html", user=user, form=form)
コード例 #4
0
def user_info():
    form = InfoForm()
    user = query_user_by_name(session.get("user_name"))
    if form.validate_on_submit():
        old_name = user.name
        user.name = form.data["user_name"]
        user.email = form.data["user_email"]
        user.age = form.data["user_edge"]
        user.birthday = form.data["user_birthday"]
        filestorage = request.files["user_face"]
        # 判断用户是否上传了新的头像文件
        if filestorage.filename != "":
            # 检查用户上传的头像文件名是否符合要求
            if not check_files_extension([form.user_face.data.filename],
                                         ALLOWED_IMAGE_EXTENSIONS):
                flash("头像文件扩展名不对!", category='err')
                return redirect(url_for("user_info"))
            # 如果上传了符合要求的新的头像文件,则首先删除旧的,再保存新的
            user_folder = os.path.join(app.config["UPLOADS_FOLDER"], old_name)
            os.remove(path=os.path.join(user_folder, user.face))
            # 更新 user.face 中保存的头像文件名
            user.face = secure_filename_with_uuid(filestorage.filename)
            filestorage.save(os.path.join(user_folder, user.face))

        # 如果用户修改了用户名, 就修改用户的上传文件夹
        if old_name != user.name:
            os.rename(os.path.join(app.config["UPLOADS_FOLDER"], old_name),
                      os.path.join(app.config["UPLOADS_FOLDER"], user.name))
        # 更新数据项
        update_user_by_name(old_name, user)
        session["user_name"] = user.name
        return redirect(url_for("user_detail"))
    return render_template("user_info.html", user=user, form=form)
コード例 #5
0
ファイル: views.py プロジェクト: edzq/FlaskProject
def user_regist():
    form = RegistForm()
    if form.validate_on_submit():
        # 查看用户名是否已经存在
        user_name = form.user_name.data
        user_x = query_user_by_name(user_name)
        if user_x:
            flash("用户名已经存在!", category='err')
            return render_template('user_regist.html', form=form)
        # 如果用户不存在,执行注册
        user = User()
        user.name = form.user_name.data
        user.pwd = form.user_pwd.data
        user.email = form.data['user_email']
        user.age = form.user_edge.data
        user.birthday = form.data["user_birthday"]
        filestorage = request.files["user_face"]
        user.face = secure_filename_with_uuid(filestorage.filename)
        # 如果用户不存在,执行插入操作
        insert_user_to_db(user)
        # 保存用户头像文件
        try:
            photosSet.save(storage=filestorage,
                           folder=user.name,
                           name=user.face)
            flash("用户注册成功!", category='ok')
            return redirect(url_for("user_login", username=user.name))
        except UploadNotAllowed:
            flash("头像文件格式不对!", category='err')
            return render_template('user_regist.html', form=form)

    return render_template('user_regist.html', form=form)
コード例 #6
0
def user_login():  # 登录

    form = LoginForm()
    if form.validate_on_submit():
        # username = request.form["user_name"]
        username = form.user_name.data
        # userpwd = request.form["user_pwd"]
        userpwd = form.user_pwd.data
        # 查看用户是否存在
        user_one = query_user_by_name(username)
        if not user_one:
            # 返回注册界面,重新登录
            flash("用户名不存在!", category="err"
                  )  # Flashes a message to the next request 闪现一条消息到下一次消息请求
            return render_template("user_login.html", form=form)
        else:
            # print(type(userpwd))
            # print(type(user_one.pwd))
            if str(userpwd) != str(user_one.pwd):
                # 返回注册界面,重新登录
                flash("密码输入错误!", category="err"
                      )  # Flashes a message to the next request 闪现一条消息到下一次消息请求
                return render_template("user_login.html", form=form)
            else:
                # flash("登录成功!", category="ok")  # Flashes a message to the next request 闪现一条消息到下一次消息请求
                session["user_name"] = user_one.name
                # return render_template("index.html") #只返回index.html界面
                return redirect(url_for('index'))  # 重定向界面并执行index路由视图函数

    return render_template("user_login.html", form=form)
コード例 #7
0
def user_regist():  # 注册
    form = RegistForm()
    if form.validate_on_submit(
    ):  # 检查提交方式是否为post 验证forms.py定义的validators 验证是否通过
        # 检查用户上传的头像文件名是否符合要求
        if not check_files_extension([form.user_face.data.filename],
                                     ALLOWED_IMAGEEXTENSIONS):
            flash("头像文件格式错误!", category="err")
            return render_template("user_regist.html", form=form)
        # 查看用户是否存在
        user_name = form.user_name.data
        user_one = query_user_by_name(user_name)
        if user_one:
            # 返回注册界面,重新注册
            flash("用户名已存在!", category="err"
                  )  # Flashes a message to the next request 闪现一条消息到下一次消息请求

            return render_template("user_regist.html", form=form)

        # print("form", form.user_name.data)
        # print("form", form.data)
        # print("form", form.data["user_name"])
        # print("request.form", request.form)
        user = User()
        # user.name = request.form["user_name"]
        user.name = form.user_name.data
        # user.pwd = request.form["user_pwd"]
        user.pwd = form.user_pwd.data
        # user.age = request.form["user_age"]
        user.age = form.user_age.data
        # user.birthday = request.form["user_birthday"]
        user.birthday = form.user_birthday.data
        # user.email = request.form["user_email"]
        user.email = form.user_email.data
        # user.face = request.form["user_face"]
        # user.face = form.user_face.data
        # filerstorage=form.user_face.data
        filerstorage = request.files["user_face"]  # 获取头像文件
        user.face = secure_filename_with_uuid(
            filerstorage.filename
        )  # secure_filename 文件名安全性检测,如果文件名有特殊字符,会将特殊字符转义,没有就返回原文件名
        # print(user.face)

        # 如果不存在执行插入操作
        # 插入一条数据
        instert_user_to_db(user)
        # 保存用户头像文件
        user_folder = os.path.join(app.config["UPLOADS_FOLDER"], user.name)
        create_folder(user_folder)  # 创建用户文件夹
        filerstorage.save(os.path.join(user_folder, user.face))
        flash("注册成功!", category="ok")
        # username作为查询参数带到url中去
        # 重定向页面 生成url 执行 user_login 函数 跳转到登录界面
        return redirect(url_for("user_login", username=user.name))
    return render_template("user_regist.html", form=form)
コード例 #8
0
def user_pwd():
    form = PwdForm()
    if form.validate_on_submit():
        old_pwd = form.old_pwd.data
        new_pwd = form.data["new_pwd"]
        user = query_user_by_name(session.get("user_name"))
        if str(old_pwd) == str(user.pwd):
            user.pwd = new_pwd
            update_user_by_name(user.name, user)
            session.pop("user_name", None)
            flash(message="修改密码成功,请重新登录!", category='ok')
            return redirect(url_for("user_login", username=user.name))
        else:
            flash(message="旧密码输入错误!", category='err')
            return render_template("user_pwd.html", form=form)
    return render_template("user_pwd.html", form=form)
コード例 #9
0
def user_pwd():  # 修改个人密码
    form = PwdForm()
    if form.validate_on_submit():
        old_pwd = request.form["old_pwd"]
        new_pwd = request.form["new_pwd"]
        user = query_user_by_name(session.get("user_name"))
        if str(old_pwd) == str(user.pwd):
            user.pwd = new_pwd
            update_user_by_name(user.name, user)
            session.pop("user_name", None)  # 修改密码后需要重新登录,然后清除session中的数据
            flash(message="密码修改成功!请重新登录!", category="ok")
            return redirect(url_for("user_login", username=user.name))
        else:
            flash(message="旧密码输入错误!", category="err")
            return render_template("user_pwd.html", form=form)

    return render_template("user_pwd.html", form=form)
コード例 #10
0
def user_login():
    form = LoginForm()
    if form.validate_on_submit():
        username = request.form["user_name"]
        userpwd = request.form["user_pwd"]
        # 查看用户名是否存在
        user_x = query_user_by_name(username)
        if not user_x:
            flash("用户名不存在!", category='err')
            return render_template('user_login.html', form=form)
        else:
            if str(userpwd) != str(user_x.pwd):
                flash("用户密码输入错误!", category='err')
                return render_template('user_login.html', form=form)
            else:
                # flash("登陆成功!", category='ok')
                session["user_name"] = user_x.name
                return redirect(url_for("index"))
    return render_template('user_login.html', form=form)
コード例 #11
0
def user_detail():
    user = query_user_by_name(session.get("user_name"))
    uploads_folder = app.config["UPLOADS_RELATIVE"]
    return render_template("user_detail.html",
                           uploads_folder=uploads_folder,
                           user=user)
コード例 #12
0
ファイル: views.py プロジェクト: edzq/FlaskProject
def user_detail():
    user = query_user_by_name(session.get("user_name"))
    face_url = photosSet.url(user.name + '/' + user.face)
    return render_template("user_detail.html", user=user, face_url=face_url)
コード例 #13
0
def user_detail():  # 个人信息
    user = query_user_by_name(session.get("user_name"))
    uploads_folder = app.config["UPLOADS_RELATIVE"]
    face_url = photosSet.url(user.name + "/" + user.face)
    print(face_url)
    return render_template("user_detail.html", user=user, face_url=face_url)