服务器对上传文件的处理与模块中渲染模块
一,模板可以包含模板
我们可以通过渲染的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})