亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

更多QQ空间微信QQ好友腾讯朋友复制链接
您的位置:首頁/技術文章
文章詳情頁

python - 關于Flask中全局變量問題

【字号: 作者:豬豬瀏覽:110日期:2022-06-29 10:11:22

問題描述

Q:看了一個Flask的簡單教程,但是有一個問題不明白。Flask中app的全局變量在多個客戶端訪問的情況下不會出錯嗎?比如下面代碼中tasks列表在多個客戶端同時訪問的時候不會出錯嗎?我用兩個客戶端進行刪除操作的時候,沒有發現問題,但是在并發更高的情況下會不會出現問題,表示不理解,求解釋。

PS:下面代碼在python3.0中,需要把task = filter(lambda t: t[’id’] == task_id, tasks)

if len(task) == 0:

改成task = filter(lambda t: t[’id’] == task_id, tasks)task = list(task)

if len(task) == 0:

#!flask/bin/pythonfrom flask import Flask, jsonify, abort, request, make_response, url_forfrom flask.ext.httpauth import HTTPBasicAuthapp = Flask(__name__, static_url_path = '')auth = HTTPBasicAuth()@auth.get_passworddef get_password(username): if username == ’miguel’:return ’python’ return None@auth.error_handlerdef unauthorized(): return make_response(jsonify( { ’error’: ’Unauthorized access’ } ), 403) # return 403 instead of 401 to prevent browsers from displaying the default auth dialog @app.errorhandler(400)def not_found(error): return make_response(jsonify( { ’error’: ’Bad request’ } ), 400)@app.errorhandler(404)def not_found(error): return make_response(jsonify( { ’error’: ’Not found’ } ), 404)tasks = [ {’id’: 1,’title’: u’Buy groceries’,’description’: u’Milk, Cheese, Pizza, Fruit, Tylenol’, ’done’: False }, {’id’: 2,’title’: u’Learn Python’,’description’: u’Need to find a good Python tutorial on the web’, ’done’: False }]def make_public_task(task): new_task = {} for field in task:if field == ’id’: new_task[’uri’] = url_for(’get_task’, task_id = task[’id’], _external = True)else: new_task[field] = task[field] return new_task @app.route(’/todo/api/v1.0/tasks’, methods = [’GET’])@auth.login_requireddef get_tasks(): return jsonify( { ’tasks’: map(make_public_task, tasks) } )@app.route(’/todo/api/v1.0/tasks/<int:task_id>’, methods = [’GET’])@auth.login_requireddef get_task(task_id): task = filter(lambda t: t[’id’] == task_id, tasks) if len(task) == 0:abort(404) return jsonify( { ’task’: make_public_task(task[0]) } )@app.route(’/todo/api/v1.0/tasks’, methods = [’POST’])@auth.login_requireddef create_task(): if not request.json or not ’title’ in request.json:abort(400) task = {’id’: tasks[-1][’id’] + 1,’title’: request.json[’title’],’description’: request.json.get(’description’, ''),’done’: False } tasks.append(task) return jsonify( { ’task’: make_public_task(task) } ), 201@app.route(’/todo/api/v1.0/tasks/<int:task_id>’, methods = [’PUT’])@auth.login_requireddef update_task(task_id): task = filter(lambda t: t[’id’] == task_id, tasks) if len(task) == 0:abort(404) if not request.json:abort(400) if ’title’ in request.json and type(request.json[’title’]) != unicode:abort(400) if ’description’ in request.json and type(request.json[’description’]) is not unicode:abort(400) if ’done’ in request.json and type(request.json[’done’]) is not bool:abort(400) task[0][’title’] = request.json.get(’title’, task[0][’title’]) task[0][’description’] = request.json.get(’description’, task[0][’description’]) task[0][’done’] = request.json.get(’done’, task[0][’done’]) return jsonify( { ’task’: make_public_task(task[0]) } ) @app.route(’/todo/api/v1.0/tasks/<int:task_id>’, methods = [’DELETE’])@auth.login_requireddef delete_task(task_id): task = filter(lambda t: t[’id’] == task_id, tasks) if len(task) == 0:abort(404) tasks.remove(task[0]) return jsonify( { ’result’: True } ) if __name__ == ’__main__’: app.run(debug = True)

項目鏈接

問題解答

回答1:

http://blog.csdn.net/yueguang...

http://www.cnblogs.com/lqminn...

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 黄色片亚洲| 亚洲第一视频在线 | 欧美偷拍小视频 | 色综合亚洲天天综合网站 | 大学生久久香蕉国产线观看 | 国产精品麻豆一区二区 | 免费看黄色小视频 | 911国产在线观看精品 | 亚洲欧美日韩在线一区 | 亚洲欧美日本国产综合在线 | 在线视频黄 | 日本黄视频在线观看 | 亚洲夂夂婷婷色拍ww47 | 欧美专区一区 | 国产自产2023最新麻豆 | 国产尤物精品视频 | 欧美日韩一区二区三区自拍 | 最新精品在线 | 一级片国产 | 久久日本精品国产精品白 | 成年人网站在线观看视频 | 黑人超大| 亚洲精品国产精品国自产观看 | 国产在线成人精品 | 亚洲欧美日韩国产精品26u | 韩国一级做a爱性色毛片 | 日韩亚洲制服丝袜中文字幕 | 在线欧美精品国产综合五月 | 国产大片线上免费观看 | 亚州一二区 | 久久亚洲综合中文字幕 | 免费看全黄特黄毛片 | 黑人性视频做爰全过程视频 | 免费看大黄高清网站视频在线 | 久久福利在线 | 日韩欧美亚洲精品 | 亚洲精品成人一区二区www | 日本在线日本中文字幕日本在线视频播放 | 亚洲一区不卡 | a级毛片免费全部播放 | 欧美性高清在线 |