[ Flask ] myblog_flask问题集(RESTfull风格)

1.惨痛的教训,url_for端点记得要写斜杠 "/"

2.前端VUE怎么捕获所有404NOT FOUND的路由呢?

 

3.个人信息页面,有个注册时间,表明在什么时候注册的。这个是在后台哪里定义的呢?

沙雕了,后台数据库定义了默认值的。。。

[ 前端页面效果 ]

[ Flask ] myblog_flask问题集(RESTfull风格)_第1张图片

[ 后端数据库设计 ]

class User(PaginatedAPIMixin, db.Model):
    id = db.Column(db.Integer,primary_key=True)
   ...
   ...
member_since = db.Column(db.DateTime(), default=datetime.utcnow) #这里定义default值为当前时间 last_seen = db.Column(db.DateTime(), default=datetime.utcnow)

 

4.对于路由.../edit/,自己只能编辑自己的资料,不能通过修改路由来编辑他人资料。如何实现呢?

 [ 前端实现 ]

我是通过导航守卫 beforeRouteUpdate 来实现的

beforeRouteUpdate(to,from,next){
    this.$toasted.error("Oh No!")
    next(false)
}

 

5.对于路由.../user/,作用是获取单个user信息,修改url访问不存在的用户会返回404的status,怎么实现的呢?

[ 后端实现 ]

#获取失败返回404
@bp.route('/users/',methods=['GET'])
@token_auth.login_required
def get_user(id):
    #返回一个用户
    #get_or_404()是根据primary_key来返回结果
    return jsonify(User.query.get_or_404(id).to_dict(include_email=True))

[ 前端实现 ]

前端通过axios拦截全局response,判断状态码来实现,核心代码如下

axios.interceptors.response.use(function(response){
    return response
},function(error){
    switch (error.response.status){
        case 404:
            Vue.toasted.error('404:NOT FOUND')
            router.back()
            break;
    }
    return Promise.reject(error)
})

 

 

6.我傻掉了,表单控件输入绑定居然用v-bind,其实VUE有更智能的v-model,详见文档。。。

。。。

 

7.vue router什么时候是 route,什么时候是 router,呕

访问路由数据的时候用 route,比如:this.$route.params.xxx

用路由方法的时候是 router,比如:this.$router.push()

 

8.包含Header、Aside、Footer的布局如何写成单页的呢?

你可能感兴趣的:([ Flask ] myblog_flask问题集(RESTfull风格))