服务器对上传文件的处理与模块中渲染模块

一,模板可以包含模板
  我们可以通过渲染的html来实现页面包含页面的效果!

<li><a href="{{ url_for("profile.pic_info") }}"/a></li>

渲染模块,在通过渲染的模块再次指定另一个路径进行要渲染的路径进行渲染
这样有很多好处:
  1,我们在视图函数之中,比如我们在第一次渲染模块之中,对用户的信息进行验证,其中在指定的模板之中之中就不需要执行身份的认证。

@profile_blue.route('/info')
@user_login_data
def user_info():
    # 只需要在这里判断一次用户登录即可
    user = g.user
    if not user:
        return redirect('/')

    data = {
        'user': g.user.to_dict()
    }
    return render_template('news/user.html', data=data)


@profile_blue.route('/pic_info', methods=['GET', 'POST'])
@user_login_data
def base_info():
    return render_template('news/user_base_info.html', data=data

  2,只需要执行一部分的加载,不用加载整个页面

二,上传文件与文件的保存
  1,借用第三方的服务器,使用第三方的代码,就可以上传到服务器之中!,文件名称是md5加密如果加密相同那么就代表是同一个文件,只需要存储一次。
    2,我们本地存储的是存到第三方服务器的文件名称,传递给前端的是完整的url拼接

# 上传到服务器
    try:
        file_name = storage(avatar)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.THIRDERR, errmsg='图片上称七牛云失败!')
#传递给前端
    return jsonify(errno=RET.OK, errmsg='成功!', data={'avatar_url': constants.QINIU_DOMIN_PREFIX + file_name})

 

posted @ 2018-06-03 14:11  十七楼的羊  阅读(109)  评论(0编辑  收藏  举报