คำถามติดแท็ก flask

Flask เป็นเฟรมเวิร์กที่มีน้ำหนักเบาสำหรับการพัฒนาเว็บแอ็พพลิเคชันโดยใช้ Python

16
TypeError: ObjectId ('') ไม่สามารถต่ออนุกรม JSON ได้
การตอบกลับของฉันกลับมาจาก MongoDB หลังจากค้นหาฟังก์ชันรวมบนเอกสารโดยใช้ Python มันส่งคืนการตอบสนองที่ถูกต้องและฉันสามารถพิมพ์ได้ แต่ไม่สามารถส่งคืนได้ ข้อผิดพลาด: TypeError: ObjectId('51948e86c25f4b1d1c0d303c') is not JSON serializable พิมพ์: {'result': [{'_id': ObjectId('51948e86c25f4b1d1c0d303c'), 'api_calls_with_key': 4, 'api_calls_per_day': 0.375, 'api_calls_total': 6, 'api_calls_without_key': 2}], 'ok': 1.0} แต่เมื่อฉันพยายามกลับ: TypeError: ObjectId('51948e86c25f4b1d1c0d303c') is not JSON serializable เป็นการโทรแบบ RESTfull: @appv1.route('/v1/analytics') def get_api_analytics(): # get handle to collections in MongoDB statistics = sldb.statistics objectid …
111 python  json  mongodb  flask 

6
เหตุใดเซิร์ฟเวอร์ Flask dev จึงรันสองครั้ง
ฉันใช้Flaskเพื่อพัฒนาเว็บไซต์และในระหว่างการพัฒนาฉันเรียกใช้ flask โดยใช้ไฟล์ต่อไปนี้: #!/usr/bin/env python from datetime import datetime from app import app import config if __name__ == '__main__': print '################### Restarting @', datetime.utcnow(), '###################' app.run(port=4004, debug=config.DEBUG, host='0.0.0.0') เมื่อฉันเริ่มเซิร์ฟเวอร์หรือเมื่อรีสตาร์ทอัตโนมัติเนื่องจากไฟล์ได้รับการอัปเดตมันจะแสดงบรรทัดการพิมพ์สองครั้งเสมอ: ################### Restarting @ 2014-08-26 10:51:49.167062 ################### ################### Restarting @ 2014-08-26 10:51:49.607096 ################### แม้ว่ามันจะไม่ใช่ปัญหาจริงๆ (ส่วนที่เหลือทำงานได้ตามที่คาดไว้) แต่ฉันก็สงสัยว่าทำไมมันถึงเป็นแบบนี้? ความคิดใด ๆ ?
111 python  flask 

19
Flask ImportError: ไม่มีโมดูลชื่อกระติกน้ำ
ฉันกำลังติดตามบทช่วยสอนเรื่อง Flask ที่นี่: http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world ฉันไปถึงจุดที่ฉันลอง. /run.py และฉันได้รับ: Traceback (most recent call last): File "./run.py", line 3, in <module> from app import app File "/Users/benjaminclayman/Desktop/microblog/app/__init__.py", line 1, in <module> from flask import Flask ImportError: No module named flask ลักษณะนี้คล้ายกับ: ImportError: ไม่มีโมดูลที่ชื่อกระติกน้ำ แต่วิธีแก้ปัญหาไม่เป็นประโยชน์ สำหรับการอ้างอิงผมทำมีโฟลเดอร์ชื่อขวดซึ่งผู้ใช้รายหนึ่งกล่าวถึงอาจทำให้เกิดปัญหา
111 python  flask 

5
การปรับใช้แอพขวดขั้นต่ำในนักเทียบท่า - ปัญหาการเชื่อมต่อเซิร์ฟเวอร์
ฉันมี app 5000ที่เป็นเพียงการพึ่งพาเป็นกระติกน้ำซึ่งไหลนักเทียบท่าอยู่ข้างนอกดีและผูกกับพอร์ตเริ่มต้น นี่คือแหล่งที่มาทั้งหมด: from flask import Flask app = Flask(__name__) app.debug = True @app.route('/') def main(): return 'hi' if __name__ == '__main__': app.run() ปัญหาคือเมื่อฉันปรับใช้สิ่งนี้ในนักเทียบท่าเซิร์ฟเวอร์กำลังทำงาน แต่ไม่สามารถเข้าถึงได้จากภายนอกคอนเทนเนอร์ ด้านล่างนี้คือ Dockerfile ของฉัน ภาพเป็น Ubuntu ที่ติดตั้งกระติกน้ำ น้ำมันดินมีเพียงindex.pyรายการด้านบน # Dockerfile FROM dreen/flask MAINTAINER dreen WORKDIR /srv # Get source RUN mkdir -p /srv COPY perfektimprezy.tar.gz …

3
การสร้างงานแบบอะซิงโครนัสใน Flask
ฉันกำลังเขียนแอปพลิเคชันใน Flask ซึ่งใช้งานได้ดีจริงๆยกเว้นว่าWSGIเป็นแบบซิงโครนัสและบล็อก ฉันมีงานหนึ่งโดยเฉพาะซึ่งเรียกไปยัง API ของบุคคลที่สามและงานนั้นอาจใช้เวลาหลายนาทีจึงจะเสร็จสมบูรณ์ ฉันต้องการโทรออก (จริงๆแล้วเป็นการโทรหลายครั้ง) และปล่อยให้มันทำงาน ในขณะที่การควบคุมกลับไปที่ Flask มุมมองของฉันดูเหมือนว่า: @app.route('/render/<id>', methods=['POST']) def render_script(id=None): ... data = json.loads(request.data) text_list = data.get('text_list') final_file = audio_class.render_audio(data=text_list) # do stuff return Response( mimetype='application/json', status=200 ) ตอนนี้สิ่งที่อยากทำคือมีไลน์ final_file = audio_class.render_audio() เรียกใช้และให้การเรียกกลับเพื่อดำเนินการเมื่อเมธอดส่งคืนในขณะที่ Flask สามารถดำเนินการตามคำขอต่อไปได้ นี่เป็นงานเดียวที่ฉันต้องการให้ Flask ทำงานแบบอะซิงโครนัสและฉันต้องการคำแนะนำเกี่ยวกับวิธีที่ดีที่สุดในการนำไปใช้ ฉันดู Twisted และ Klein แล้ว แต่ฉันไม่แน่ใจว่าพวกเขาโอเวอร์คิลเพราะ …

5
ฉันจะตั้งค่าส่วนหัวการตอบกลับใน Flask ได้อย่างไร?
นี่คือรหัสของฉัน: @app.route('/hello', methods=["POST"]) def hello(): resp = make_response() resp.headers['Access-Control-Allow-Origin'] = '*' return resp อย่างไรก็ตามเมื่อฉันส่งคำขอจากเบราว์เซอร์ไปยังเซิร์ฟเวอร์ของฉันฉันได้รับข้อผิดพลาดนี้: XMLHttpRequest cannot load http://localhost:5000/hello. No 'Access-Control-Allow-Origin' header is present on the requested resource. ฉันได้ลองใช้วิธีนี้เช่นกันโดยตั้งค่าส่วนหัวการตอบกลับ "หลัง" คำขอ: @app.after_request def add_header(response): response.headers['Access-Control-Allow-Origin'] = '*' return response ไม่มีลูกเต๋า ฉันได้รับข้อผิดพลาดเดียวกัน มีวิธีตั้งค่าส่วนหัวการตอบสนองในฟังก์ชันเส้นทางหรือไม่? สิ่งนี้จะเหมาะ: @app.route('/hello', methods=["POST"]) def hello(response): # is this a …
109 python  flask 


10
เพิ่มคำนำหน้าไปยังเส้นทางขวดทั้งหมด
ฉันมีคำนำหน้าว่าฉันต้องการเพิ่มในทุกเส้นทาง ตอนนี้ฉันเพิ่มค่าคงที่ให้กับเส้นทางทุกคำจำกัดความ มีวิธีดำเนินการโดยอัตโนมัติหรือไม่? PREFIX = "/abc/123" @app.route(PREFIX + "/") def index_page(): return "This is a website about burritos" @app.route(PREFIX + "/about") def about_page(): return "This is a website about burritos"
106 python  routes  flask 

3
Flask รองรับนิพจน์ทั่วไปในการกำหนดเส้นทาง URL หรือไม่
ฉันเข้าใจว่า Flask มีตัวแปลง int, float และ path แต่แอปพลิเคชันที่เรากำลังพัฒนามีรูปแบบที่ซับซ้อนกว่าใน URL มีวิธีที่เราสามารถใช้นิพจน์ทั่วไปเช่นเดียวกับใน Django ได้หรือไม่?
101 python  regex  flask 

3
ตัวแปรโกลบอลเธรดปลอดภัยใน Flask หรือไม่ ฉันจะแบ่งปันข้อมูลระหว่างคำขอได้อย่างไร
ในแอปพลิเคชันของฉันสถานะของวัตถุทั่วไปจะเปลี่ยนไปโดยการร้องขอและการตอบสนองขึ้นอยู่กับสถานะ class SomeObj(): def __init__(self, param): self.param = param def query(self): self.param += 1 return self.param global_obj = SomeObj(0) @app.route('/') def home(): flash(global_obj.query()) render_template('index.html') หากฉันเรียกใช้สิ่งนี้บนเซิร์ฟเวอร์การพัฒนาของฉันฉันคาดว่าจะได้รับ 1, 2, 3 และอื่น ๆ หากมีการร้องขอจากลูกค้าที่แตกต่างกัน 100 รายพร้อมกันอาจเกิดข้อผิดพลาดหรือไม่? ผลลัพธ์ที่คาดหวังคือลูกค้าที่แตกต่างกัน 100 รายแต่ละรายจะเห็นหมายเลขที่ไม่ซ้ำกันตั้งแต่ 1 ถึง 100 หรือจะเกิดเหตุการณ์เช่นนี้: แบบสอบถามลูกค้า 1 self.paramเพิ่มขึ้นทีละ 1 ก่อนที่จะดำเนินการคำสั่ง return เธรดจะสลับไปที่ไคลเอนต์ 2 self.paramจะเพิ่มขึ้นอีกครั้ง เธรดจะเปลี่ยนกลับไปที่ไคลเอนต์ …

2
วิธีส่งคำขอด้วย JSON ในการทดสอบหน่วย
ฉันมีรหัสภายในแอปพลิเคชัน Flask ที่ใช้ JSON ในคำขอและฉันสามารถรับวัตถุ JSON ได้ดังนี้: Request = request.get_json() สิ่งนี้ใช้งานได้ดี แต่ฉันพยายามสร้างการทดสอบหน่วยโดยใช้โมดูลที่ไม่เหมาะสมที่สุดของ Python และฉันมีปัญหาในการหาวิธีส่ง JSON พร้อมกับคำขอ response=self.app.post('/test_function', data=json.dumps(dict(foo = 'bar'))) สิ่งนี้ทำให้ฉัน: >>> request.get_data() '{"foo": "bar"}' >>> request.get_json() None ดูเหมือนว่า Flask จะมีอาร์กิวเมนต์ JSON ซึ่งคุณสามารถตั้งค่า json = dict (foo = 'bar') ในคำขอโพสต์ แต่ฉันไม่รู้ว่าจะทำอย่างไรกับโมดูลที่ไม่เหมาะสมที่สุด

11
ฐานข้อมูลเป้าหมายไม่ทันสมัย
ฉันต้องการย้ายข้อมูลสำหรับแอป Flask ฉันใช้ Alembic อย่างไรก็ตามฉันได้รับข้อผิดพลาดต่อไปนี้ Target database is not up to date. ออนไลน์ฉันอ่านว่ามันเกี่ยวข้องกับสิ่งนี้ http://alembic.zzzcomputing.com/en/latest/cookbook.html#building-an-up-to-date-database-from-scratch น่าเสียดายที่ฉันไม่ค่อยเข้าใจวิธีการทำให้ฐานข้อมูลเป็นปัจจุบันและฉันควรเขียนโค้ดที่ระบุในลิงค์อย่างไร หากคุณมีประสบการณ์เกี่ยวกับการย้ายข้อมูลโปรดอธิบายเรื่องนี้ให้ฉันฟังได้ไหม ขอบคุณ

3
แบบสอบถามกรณีไม่ไวต่อ Flask-SQLAlchemy
ฉันใช้ Flask-SQLAlchemy เพื่อค้นหาจากฐานข้อมูลของผู้ใช้ อย่างไรก็ตามในขณะที่ user = models.User.query.filter_by(username="ganye").first() จะกลับมา <User u'ganye'> ทำ user = models.User.query.filter_by(username="GANYE").first() ผลตอบแทน None ฉันสงสัยว่ามีวิธีสืบค้นฐานข้อมูลแบบไม่คำนึงถึงตัวพิมพ์หรือไม่เพื่อให้ตัวอย่างที่สองยังคงกลับมา <User u'ganye'>

1
Python Flask การตอบสนองที่ว่างเปล่าโดยเจตนา
มีวิธีส่งคืนการตอบกลับ (จากmake_response()วัตถุหรือสิ่งที่คล้ายกัน) ด้วยคุณสมบัติบางอย่างหรือไม่เพื่อไม่ให้แสดงหน้าเว็บอีกครั้งและไม่ทำอย่างอื่นด้วย ฉันพยายามรันโค้ดบนเซิร์ฟเวอร์โดยไม่สร้างเอาต์พุตใด ๆ 'return None' ที่เรียบง่ายก่อให้เกิด: ValueError: View function did not return a response สิ่งนี้น่าจะเป็นไปได้เนื่องจากสิ่งต่อไปนี้จะดาวน์โหลดเฉพาะไฟล์และไม่แสดงเทมเพลต: myString = "First line of a document" response = make_response(myString) response.headers["Content-Disposition"] = "attachment; filename=myFile.txt" return response
99 python  flask  response 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.