예제 #1
0
 def update_sidebar(self, id, name, father_id, father_name):
     try:
         category_obj = self.dao.getCategoryById(id)
         category_obj.name = name
         category_obj.father_id = father_id
         category_obj.father_name = father_name
         self.dao.update_category()
         return PublicMethod.true_return(data='编辑左侧边栏成功', msg='success')
     except Exception:
         traceback.print_exc()
         return PublicMethod.false_return(data='编辑左侧边栏失败', msg='error')
예제 #2
0
파일: service.py 프로젝트: wbin327/MyBlog
 def register(self, username, password):
     user = self.dao.query_user_by_name(username)
     if user:
         result = PublicMethod.false_return(data='', msg='用户名已存在')
     else:
         hash_password = generate_password_hash(password)
         excute = self.dao.add_user(username, hash_password)
         if excute is True:
             result = PublicMethod.true_return(data='', msg='注册成功')
         else:
             result = PublicMethod.false_return(data='', msg='注册失败')
     return result
예제 #3
0
 def download_content(self, blog_id):
     try:
         article = self.dao.get_article_by_id(blog_id)
         if article:
             return PublicMethod.true_return(data=article.content,
                                             msg='获取博客内容成功!')
         else:
             return PublicMethod.false_return(data='',
                                              msg='articl对象为空,具体原因请查看后台日志')
     except Exception:
         traceback.print_exc()
         return PublicMethod.false_return(data='', msg='后台抛出异常,请查看后台日志')
예제 #4
0
 def add_article(self, form, user):
     try:
         article = Article(form=form)
         article.user_id = user.id
         article.read_count = 0
         category = self.dao.getCategoryById(form['category'])
         article.category = [category]
         self.dao.add_article(article)
         return PublicMethod.true_return(data='', msg=u'发布成功')
     except Exception, e:
         traceback.print_exc()
         return PublicMethod.false_return(data='', msg=u'后台报错,请联系管理员')
예제 #5
0
파일: service.py 프로젝트: wbin327/MyBlog
 def update_user(self, request):
     try:
         user_id = request.values.get('user_id')
         user_name = request.values.get('user_name')
         user_password = request.values.get('user_password')
         user_obj = self.dao.get_user_by_id(user_id)
         user_obj.username = user_name
         user_obj.password = user_obj.password_to_hash(user_password)
         self.dao.update_user(user_obj)
         return PublicMethod.true_return(data='', msg='更新用户成功!')
     except Exception:
         traceback.print_exc()
         return PublicMethod.false_return(data='', msg='后台抛出异常,请查看日志')
예제 #6
0
 def search_blog(self, request):
     try:
         condition = request.values.get('condition')
         # 清除html标签,防止用户恶意输入
         bleach.clean(condition)
         article_list = self.dao.search_blog(condition)
         article_list = [article.serialize() for article in article_list]
         return jsonify(
             PublicMethod.true_return(data=article_list, msg='请求成功!'))
     except Exception:
         traceback.print_exc()
         return jsonify(
             PublicMethod.false_return(data='', msg='请求失败,具体原因请查看后台日志文件!'))
예제 #7
0
파일: service.py 프로젝트: wbin327/MyBlog
 def delete_blog(self, request):
     try:
         blog_id = request.values.get('blog_id')
         # 要将字符型转整型,否则sql查询结果为空
         # blog_id = int(filter(str.isdigit, blog_id.encode("utf-8")))
         if blog_id:
             article = self.dao.get_article_by_id(blog_id)
             excute = self.dao.delete_article(article)
             if excute:
                 return jsonify(PublicMethod.true_return(data='', msg='删除成功'))
             else:
                 return jsonify(PublicMethod.flase_return(data='', msg='删除失败'))
     except Exception:
         traceback.print_exc()
         return jsonify(PublicMethod.false_return(data='', msg='后台报错,请查看日志'))
예제 #8
0
파일: service.py 프로젝트: wbin327/MyBlog
 def get_blog_list(self, request):
     try:
         son_id = request.values.get('son_id')
         if son_id:
             category = self.dao.get_category_by_id(son_id)
             blog_list = []
             func = lambda id, title: {'id': id, 'title': title}
             for article in category.article:
                 blog_list.append(func(article.id, article.title))
             return jsonify(PublicMethod.true_return(data=blog_list, msg='请求成功'))
         else:
             return jsonify(PublicMethod.false_return(data='', msg='请求的参数有误,请求失败'))
     except Exception:
         traceback.print_exc()
         return jsonify(PublicMethod.false_return(data='', msg='后台报错,请查看日志'))
예제 #9
0
파일: service.py 프로젝트: wbin327/MyBlog
 def get_son_list(self, request):
     try:
         father_id = request.values.get('father_id')
         if father_id:
             category_list = self.dao.get_son_by_father(father_id)
             son_list = []
             func = lambda id, name: {'id': id, 'name': name}
             for category in category_list:
                 son_list.append(func(category.id, category.name))
             return jsonify(PublicMethod.true_return(data=son_list, msg='请求成功'))
         else:
             return jsonify(PublicMethod.false_return(data='', msg='请求参数有误,请求失败'))
     except Exception:
         traceback.print_exc()
         return jsonify(PublicMethod.false_return(data='', msg='后台报错,请查看日志'))
예제 #10
0
파일: service.py 프로젝트: wbin327/MyBlog
 def get_father_by_user(self):
     try:
         father_list = self.dao.get_blog_header()
         return father_list
     except Exception:
         traceback.print_exc()
         return PublicMethod.false_return(data='', msg='后台抛出异常,请查看日志')
예제 #11
0
파일: views.py 프로젝트: wbin327/MyBlog
def edit_blog(blog_id):
    from app.util.public_method import PublicMethod
    try:
        form = ArticleForm()
        article = service.get_article(blog_id)
        if article:
            if not form.title.data and not form.introduce.data:
                form.title.data = article.title
                form.tags.data = article.tags
                form.introduce.data = article.introduce
                form.type.data = article.type
                form.content.data = article.content
                return render_template('/blog/edit_blog.html',
                                       form=form,
                                       json='',
                                       blog_id=article.id)

            if form.validate_on_submit() and request.method == 'POST':
                user = current_user
                json = service.update_article(request.form, user, blog_id)
                if json['status']:
                    return render_template('/blog/edit_blog.html',
                                           form=form,
                                           json=json,
                                           blog_id=article.id)
                else:
                    return render_template('/blog/edit_blog.html',
                                           form=form,
                                           json=json,
                                           blog_id=article.id)
            else:

                return render_template('/blog/edit_blog.html',
                                       form=form,
                                       json=PublicMethod.false_return(
                                           data='', msg=u'数据检验没通过,请检查数据格式'),
                                       blog_id=article.id)
        else:
            return render_template('/blog/edit_blog.html',
                                   form=form,
                                   json=PublicMethod.false_return(
                                       data='', msg=u'该博客不存在'),
                                   blog_id=blog_id)
    except Exception:
        traceback.print_exc()
        return redirect('/blog/error')
예제 #12
0
파일: service.py 프로젝트: wbin327/MyBlog
    def login_check(self, name, password):
        """
            token验证,登录成功返回token,并将登录时间写入数据库;登录失败则返回失败原因
            :param username: 用户名
            :param password: 密码
            :return: dict
            """
        user = self.dao.query_user_by_name(name)

        if user:
            result = check_password_hash(user.password, password)
            if result:
                user.login_time = time.time()
                self.dao.add(user)
                token = encode_auth_token(user_id=user.id, login_time=user.login_time)
                return PublicMethod.true_return(data=token, msg='登录成功')
            else:
                return PublicMethod.false_return(data='', msg='密码错误')
        else:
            return PublicMethod.false_return(data='', msg='用户名不存在')
예제 #13
0
파일: service.py 프로젝트: wbin327/MyBlog
    def background_login_check(self, name, password,  remember=False):
        """
        后台登录认证,使用了flask_login插件
        :param name: 用户名
        :param password: 密码
        :param session: 会话
        :param remember:保持登录,boolean
        :return: dict
        """

        user = self.dao.query_user_by_name(name)

        if user:
            result = check_password_hash(user.password, password)
            if result:
                user.login_time = time.time()
                self.dao.add(user)
                login_user(user, remember=remember)
                return PublicMethod.true_return(data='', msg='login_success')
            else:
                return PublicMethod.false_return(data='', msg='password_error')
        else:
            return PublicMethod.false_return(data='', msg='none_user')
예제 #14
0
 def update_article(self, form, user, blog_id):
     try:
         old_article = self.dao.get_article_by_id(blog_id)
         old_article.user_id = user.id
         category = self.dao.getCategoryById(form['category'])
         old_article.category = [category]
         old_article.title = form['title']
         old_article.content = form['content']
         old_article.type = form['type']
         old_article.tags = form['tags']
         old_article.introduce = form['introduce']
         old_article.update_time = datetime.now()
         if str(form['type']) == str(1):
             old_article.type = '原创'
         elif str(form['type']) == str(2):
             old_article.type = '转载'
         else:
             old_article.type = '翻译'
         self.dao.session_commit()
         return PublicMethod.true_return(data='', msg=u'博客更新成功')
     except Exception, e:
         traceback.print_exc()
         return PublicMethod.false_return(data='', msg=u'后台报错,请联系管理员')