コード例 #1
0
ファイル: post.py プロジェクト: pjshu/flask-blog
def post_view():
    # 添加文章
    if request.method == 'POST':
        post = Post.create()
        return generate_res(data={'id': post.id})
    elif request.method == 'PUT':
        form = PostValidate().validate_api()
        Post.update_by_id(form.id.data, form.data)
        return generate_res()
    elif request.method == 'DELETE':
        Post.delete_by_id(request.get_json().get('id'))
        return generate_res()
    post = Post.query.get_or_404(request.args.get('id'))
    return generate_res(data=PostView(post))
コード例 #2
0
def user_info_view():
    uid = request.headers.get('identify')
    user = User.query.get_or_404(uid)
    if request.method == 'PUT':
        form = UserValidate().validate_api()
        if form.email.data and form.email.data != user.email:
            user.email_is_validate = False
            user.email = form.email.data
            send_email(to=form.email,
                       subject='账户邮件修改确认',
                       content=url_for('admin.auth_email_view',
                                       token=user.generate_token()))
        user.update(form.data)
        return generate_res()
    return generate_res(data=UserInfoView(user))
コード例 #3
0
def posts():
    data = {
        'current_page':
        '1',
        'content': [{
            "id":
            1,
            "title":
            'article title',
            "article":
            '  进程: 进程是一个实体。每个进程都有自己的地址空间(CPU分配) 是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程: 线程是进程中的一个实体 一个进程内部可能包含了很多顺序执行流,每个顺序执行流就是一个线程 应用场景: 多进程:cpu密集型 多线程:io密集型'
        }, {
            "id":
            2,
            "title":
            'article title',
            "article":
            '  进程: 进程是一个实体。每个进程都有自己的地址空间(CPU分配) 是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程: 线程是进程中的一个实体 一个进程内部可能包含了很多顺序执行流,每个顺序执行流就是一个线程 应用场景: 多进程:cpu密集型 多线程:io密集型'
        }, {
            "id":
            3,
            "title":
            'article title',
            "article":
            '  进程: 进程是一个实体。每个进程都有自己的地址空间(CPU分配) 是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程: 线程是进程中的一个实体 一个进程内部可能包含了很多顺序执行流,每个顺序执行流就是一个线程 应用场景: 多进程:cpu密集型 多线程:io密集型'
        }, {
            "id":
            4,
            "title":
            'article title',
            "article":
            '  进程: 进程是一个实体。每个进程都有自己的地址空间(CPU分配) 是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程: 线程是进程中的一个实体 一个进程内部可能包含了很多顺序执行流,每个顺序执行流就是一个线程 应用场景: 多进程:cpu密集型 多线程:io密集型'
        }]
    }
    return generate_res("success", data=data)
コード例 #4
0
def register_view():
    form = RegisterValidate().validate_api()
    user = User.create(form.data)
    if form.email:
        send_email(to=form.email,
                   subject='账号注册',
                   content=url_for('admin.auth_email_view',
                                   token=user.generate_token()))
    return generate_res(data={'id': user.id})
コード例 #5
0
def login_view():
    form = LoginValidate().validate_api()
    user = User.query.filter_by(username=form.username.data).first_or_404()
    if not user.check_password(form.password.data):
        raise AuthFailed()
    user.update(is_active=True)
    return generate_res(data={
        'id': user.id,
        'token': user.generate_token(),
    })
コード例 #6
0
def tags_view():
    if request.method == 'PUT':
        form = TagValidate().validate_api()
        tag = Tag.query.get_or_404(form.id.data)
        # 如果修改了标签名,且修改后的标签名已存在
        if tag.name != form.name.data and Tag.query.filter_by(name=form.name.data).first():
            raise RepeatException(msg='标签名已存在')
        tag.update(form.data)
        return generate_res()
    elif request.method == 'DELETE':
        Tag.delete_by_id(request.get_json().get('id'))
        return generate_res()
    elif request.method == 'POST':
        form = TagValidate().validate_api()
        if Tag.query.filter_by(name=form.name.data).first():
            raise RepeatException('标签已存在')
        Tag.create(form.data, count=1)
        return generate_res()
    query = QueryView()
    pagination = Tag.search(**query.search_query)
    return generate_res(data=TagsView(pagination.items, query.page))
コード例 #7
0
ファイル: tags.py プロジェクト: pjshu/flask-blog
def tag_view():
    return generate_res(data=[
        {
            "id": 1,
            "name": "ubuntu",
            "count": 5,
        },
        {
            "id": 2,
            "name": "linux",
            "count": 10
        },
        {
            "id": 3,
            "name": "python",
            "count": 3
        },
        {
            "id": 4,
            "name": "java",
            "count": 3
        },
        {
            "id": 5,
            "name": "javaScript",
            "count": 3
        },
        {
            "id": 6,
            "name": "学习记录",
            "count": 3
        },
        {
            "id": 7,
            "name": "docker",
            "count": 3
        },
        {
            "id": 8,
            "name": "chrome",
            "count": 3
        },
    ])
コード例 #8
0
def all_tags_view():
    tags = [tag.name for tag in Tag.query.all()]
    return generate_res(data=tags)
コード例 #9
0
def auth_view():
    return generate_res()
コード例 #10
0
def logout_view():
    uid = request.headers.get('identify')
    User.update_by_id(uid, is_active=False)
    return generate_res()
コード例 #11
0
def auth_email_view(token):
    User.confirm_email_token(token)
    return generate_res()
コード例 #12
0
ファイル: post.py プロジェクト: pjshu/flask-blog
def post_view():
    return generate_res(
        data={
            "id": 1,
            "title": "并发编程",
            "article": {
                "blocks": [{
                    "key": "e3ouk",
                    "text":
                    "import requests\nimport threading\ndef test2():\n    def request(url):\n        t = threading.Thread(target=lambda _: requests.get(_), args=(url,))\n        t.start()\n        return t\n    print('开始请求url:', URL1)\n    request(URL1)                         \n    print('开始请求url:', URL2)     # 非阻塞\n    request(URL2)\ntest2()\n",
                    "type": "code-block",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "nodeAttributes": {},
                        "syntax": "python"
                    }
                }, {
                    "key": "duat5",
                    "text": "",
                    "type": "unstyled",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key":
                    "2ugee",
                    "text":
                    "import requests\nimport threading\ndef test2():\n    def request(url):\n        t = threading.Thread(target=lambda _: requests.get(_), args=(url,))\n        t.start()\n        return t\n    print('开始请求url:', URL1)\n    request(URL1)                         \n    print('开始请求url:', URL2)     # 非阻塞\n    request(URL2)\ntest2()",
                    "type":
                    "code-block",
                    "depth":
                    0,
                    "inlineStyleRanges": [{
                        "offset": 0,
                        "length": 6,
                        "style": "COLOR-8959A8"
                    }, {
                        "offset": 16,
                        "length": 6,
                        "style": "COLOR-8959A8"
                    }, {
                        "offset": 33,
                        "length": 3,
                        "style": "COLOR-8959A8"
                    }, {
                        "offset": 50,
                        "length": 3,
                        "style": "COLOR-8959A8"
                    }, {
                        "offset": 104,
                        "length": 6,
                        "style": "COLOR-8959A8"
                    }, {
                        "offset": 170,
                        "length": 6,
                        "style": "COLOR-8959A8"
                    }, {
                        "offset": 33,
                        "length": 12,
                        "style": "COLOR-4271AE"
                    }, {
                        "offset": 50,
                        "length": 17,
                        "style": "COLOR-4271AE"
                    }, {
                        "offset": 37,
                        "length": 5,
                        "style": "COLOR-3E999F"
                    }, {
                        "offset": 54,
                        "length": 7,
                        "style": "COLOR-3E999F"
                    }, {
                        "offset": 42,
                        "length": 2,
                        "style": "COLOR-F5871F"
                    }, {
                        "offset": 61,
                        "length": 5,
                        "style": "COLOR-F5871F"
                    }, {
                        "offset": 189,
                        "length": 10,
                        "style": "COLOR-718C00"
                    }, {
                        "offset": 260,
                        "length": 10,
                        "style": "COLOR-718C00"
                    }, {
                        "offset": 282,
                        "length": 5,
                        "style": "COLOR-8E908C"
                    }],
                    "entityRanges": [],
                    "data": {
                        "nodeAttributes": {}
                    }
                }, {
                    "key": "5h05h",
                    "text": "",
                    "type": "unstyled",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "4cj8k",
                    "text": "🤣💚💚👏💝💓😅👍😊",
                    "type": "unstyled",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "1atnc",
                    "text": "",
                    "type": "unstyled",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "eupff",
                    "text": "",
                    "type": "unstyled",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "7g8qg",
                    "text": "",
                    "type": "unstyled",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "f6qpk",
                    "text": "tes",
                    "type": "table-cell",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "tableKey": "fpq5c",
                        "colIndex": 0,
                        "rowIndex": 0,
                        "colSpan": 1,
                        "rowSpan": 1
                    }
                }, {
                    "key": "bqnv",
                    "text": "test",
                    "type": "table-cell",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "tableKey": "fpq5c",
                        "colIndex": 1,
                        "rowIndex": 0,
                        "colSpan": 1,
                        "rowSpan": 1
                    }
                }, {
                    "key": "5766n",
                    "text": "teste",
                    "type": "table-cell",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "tableKey": "fpq5c",
                        "colIndex": 2,
                        "rowIndex": 0,
                        "colSpan": 1,
                        "rowSpan": 1
                    }
                }, {
                    "key": "6v19u",
                    "text": "teste",
                    "type": "table-cell",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "tableKey": "fpq5c",
                        "colIndex": 0,
                        "rowIndex": 1,
                        "colSpan": 1,
                        "rowSpan": 1
                    }
                }, {
                    "key": "aru41",
                    "text": "dsafdf",
                    "type": "table-cell",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "tableKey": "fpq5c",
                        "colIndex": 1,
                        "rowIndex": 1,
                        "colSpan": 1,
                        "rowSpan": 1
                    }
                }, {
                    "key": "ce40k",
                    "text": "teste",
                    "type": "table-cell",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "tableKey": "fpq5c",
                        "colIndex": 2,
                        "rowIndex": 1,
                        "colSpan": 1,
                        "rowSpan": 1
                    }
                }, {
                    "key": "ap7s5",
                    "text": "adsfsdf",
                    "type": "table-cell",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "tableKey": "fpq5c",
                        "colIndex": 0,
                        "rowIndex": 2,
                        "colSpan": 1,
                        "rowSpan": 1
                    }
                }, {
                    "key": "8j8l1",
                    "text": "tesate",
                    "type": "table-cell",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "tableKey": "fpq5c",
                        "colIndex": 1,
                        "rowIndex": 2,
                        "colSpan": 1,
                        "rowSpan": 1
                    }
                }, {
                    "key": "epkdv",
                    "text": "teat",
                    "type": "table-cell",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "tableKey": "fpq5c",
                        "colIndex": 2,
                        "rowIndex": 2,
                        "colSpan": 1,
                        "rowSpan": 1
                    }
                }, {
                    "key": "3cvv2",
                    "text": "",
                    "type": "unstyled",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }],
                "entityMap": {}
            }
        })
コード例 #13
0
def user_view():
    return generate_res(
        data={
            "about": {
                "blocks": [{
                    "key": "4jc4v",
                    "text": "关于本人",
                    "type": "header-two",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "id": "关于本人"
                    }
                }, {
                    "key":
                    "cem1n",
                    "text":
                    "it小学生",
                    "type":
                    "unordered-list-item",
                    "depth":
                    0,
                    "inlineStyleRanges": [{
                        "offset": 0,
                        "length": 5,
                        "style": "STRIKETHROUGH"
                    }],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key":
                    "2su85",
                    "text":
                    "愤青,",
                    "type":
                    "unordered-list-item",
                    "depth":
                    0,
                    "inlineStyleRanges": [{
                        "offset": 0,
                        "length": 2,
                        "style": "STRIKETHROUGH"
                    }],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key":
                    "6mrkb",
                    "text":
                    "没经历过社会的摩擦",
                    "type":
                    "unordered-list-item",
                    "depth":
                    0,
                    "inlineStyleRanges": [{
                        "offset": 0,
                        "length": 9,
                        "style": "STRIKETHROUGH"
                    }],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "bss9f",
                    "text": "十万个为什么",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "uph",
                    "text": "热爱技术",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "449md",
                    "text": "大学本科在读",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "1j7hc",
                    "text": "富强民主文明和谐",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "dpgch",
                    "text": "自由平等公正法制",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "507m9",
                    "text": "爱国敬业诚信友善",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "d26r",
                    "text": "富強 民主 文明 和諧",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "6vjtc",
                    "text": "自繇 平等 公正 法治 ",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "as92h",
                    "text": "愛國 敬業 誠信 友善",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "aa6so",
                    "text": "Prosperity Democracy Civility Harmony",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "146ck",
                    "text": "Freedom Equality Justice RuleOfLaw ",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "1u1j7",
                    "text": "Patriotism Dedication Integrity Friendship",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "b8dlb",
                    "text": "부강 민주 문명 조화",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "6vve7",
                    "text": "자유 평등 공정, 법치",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "d889o",
                    "text": "애국 직업정신 성실과신용 우호",
                    "type": "unordered-list-item",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {}
                }, {
                    "key": "3obth",
                    "text": "正在拜读:",
                    "type": "unstyled",
                    "depth": 0,
                    "inlineStyleRanges": [],
                    "entityRanges": [],
                    "data": {
                        "nodeAttributes": {}
                    }
                }, {
                    "key":
                    "50v57",
                    "text":
                    "他改变了中国(手动狗头)",
                    "type":
                    "unstyled",
                    "depth":
                    0,
                    "inlineStyleRanges": [],
                    "entityRanges": [{
                        "offset": 0,
                        "length": 6,
                        "key": 0
                    }],
                    "data": {
                        "nodeAttributes": {}
                    }
                }],
                "entityMap": {
                    "0": {
                        "type": "LINK",
                        "mutability": "MUTABLE",
                        "data": {
                            "href":
                            "https://www.baidu.com/s?wd=%E4%BB%96%E6%94%B9%E5%8F%98%E4%BA%86%E4%B8%AD%E5%9B%BD&rsv_spt=1&rsv_iqid=0xdb5b2c6800019604&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_sug3=18&rsv_sug1=11&rsv_sug7=100",
                            "target": None,
                            "nodeAttributes": {}
                        }
                    }
                }
            }
        })
コード例 #14
0
def posts_view():
    query = QueryView()
    pagination = Post.search(**query.search_query)
    return generate_res(data=PostsView(pagination.items, query.page))