示例#1
0
    def post(self):
        args = channel_parser.parse_args()

        channel = Channel()
        channel.name = args['name']
        channel.sort = args['sort']

        db.session.add(channel)
        db.session.commit()

        return channel, 201
示例#2
0
文件: views.py 项目: cgrice/lazytube
def create(request):
    c = Channel()
    newhash = base64.urlsafe_b64encode(hashlib.md5(str(time.time())).digest())
    # Remove dashes and underscores to make this easier to type
    newhash = newhash.replace("-", "")
    newhash = newhash.replace("_", "")
    c.hash = newhash[0:6]
    c.name = ""
    c.pusher_key = "private-videochannel_" + c.hash
    c.save()
    return redirect("/channel/" + c.hash)
示例#3
0
def channel_list():
    if request.method == 'POST':
        """
        POST /channels
        
        {"name": "科技", "sort": 1}
        
        注意 postman/前端 在向服务器提交 json 数据时,需要声明提交的类型
        在 请求的 headers 增加 content-type: application/json
        flask 在确认请求数据是通过 json 提交之后,会将 json 字符串转换成 字典,保存在 request.json 中
        
        """
        # print(request.data)
        # print(request.json)

        if 'name' not in request.json or 'sort' not in request.json:
            return abort(400)

        channel = Channel()
        channel.name = request.json['name']
        channel.sort = request.json['sort']

        db.session.add(channel)
        db.session.commit()

        return jsonify({'channel': channel.to_dict()}), 201

    # 数据库查询返回的是 list 类型的数据
    _channels = Channel.query.all()
    channels = [channel.to_dict() for channel in _channels]

    # flask 视图函数只能返回 str 或 response 对象
    # 我们可以将数据库查询出来的数据 转换成 json,以满足 flask 视图函数的返回要求

    ret = {'channels': channels}

    # import json
    # json_str = json.dumps(ret)
    # return json_str

    return jsonify(ret), 200