กระติกน้ำ - การปรับใช้
เซิร์ฟเวอร์ที่มองเห็นได้จากภายนอก
แอปพลิเคชัน Flask บนเซิร์ฟเวอร์การพัฒนาสามารถเข้าถึงได้บนคอมพิวเตอร์ที่ตั้งค่าสภาพแวดล้อมการพัฒนาเท่านั้น นี่เป็นลักษณะการทำงานเริ่มต้นเนื่องจากในโหมดการดีบักผู้ใช้สามารถเรียกใช้รหัสตามอำเภอใจบนคอมพิวเตอร์ได้
ถ้า debug ถูกปิดใช้งานเซิร์ฟเวอร์การพัฒนาบนคอมพิวเตอร์ในระบบสามารถให้บริการแก่ผู้ใช้บนเครือข่ายได้โดยตั้งชื่อโฮสต์เป็น ‘0.0.0.0’.
app.run(host = ’0.0.0.0’)
ดังนั้นระบบปฏิบัติการของคุณจะรับฟัง IP สาธารณะทั้งหมด
การปรับใช้
ในการเปลี่ยนจากสภาพแวดล้อมการพัฒนาเป็นสภาพแวดล้อมการใช้งานจริงที่สมบูรณ์แอปพลิเคชันจำเป็นต้องปรับใช้บนเว็บเซิร์ฟเวอร์จริง มีตัวเลือกต่าง ๆ สำหรับปรับใช้เว็บแอปพลิเคชัน Flask ทั้งนี้ขึ้นอยู่กับสิ่งที่คุณมี
สำหรับแอปพลิเคชันขนาดเล็กคุณสามารถพิจารณาปรับใช้บนแพลตฟอร์มที่โฮสต์ต่อไปนี้ซึ่งทั้งหมดนี้มีแผนบริการฟรีสำหรับแอปพลิเคชันขนาดเล็ก
- Heroku
- dotcloud
- webfaction
แอปพลิเคชัน Flask สามารถใช้งานได้บนแพลตฟอร์มคลาวด์เหล่านี้ นอกจากนี้ยังสามารถปรับใช้แอพ Flask บนแพลตฟอร์มคลาวด์ของ Google บริการ Localtunnel ช่วยให้คุณสามารถแบ่งปันแอปพลิเคชันของคุณบน localhost โดยไม่ต้องยุ่งกับการตั้งค่า DNS และไฟร์วอลล์
หากคุณมีแนวโน้มที่จะใช้เว็บเซิร์ฟเวอร์เฉพาะแทนแพลตฟอร์มที่ใช้ร่วมกันดังกล่าวข้างต้นคุณสามารถสำรวจตัวเลือกต่อไปนี้ได้
mod_wsgi
mod_wsgi เป็นโมดูล Apache ที่มีอินเทอร์เฟซที่สอดคล้องกับ WSGI สำหรับการโฮสต์เว็บแอปพลิเคชันที่ใช้ Python บนเซิร์ฟเวอร์ Apache
กำลังติดตั้ง mod_wsgi
ในการติดตั้งรุ่นโดยตรงอย่างเป็นทางการจาก PyPi คุณสามารถเรียกใช้ -
pip install mod_wsgi
ในการตรวจสอบว่าการติดตั้งสำเร็จให้รันสคริปต์ mod_wsgi-express ด้วยคำสั่ง start-server -
mod_wsgi-express start-server
สิ่งนี้จะเริ่มต้น Apache / mod_wsgi บนพอร์ต 8000 จากนั้นคุณสามารถตรวจสอบได้ว่าการติดตั้งทำงานได้โดยชี้เบราว์เซอร์ของคุณที่ -
http://localhost:8000/
การสร้างไฟล์. wsgi
ควรมี yourapplication.wsgiไฟล์. ไฟล์นี้มีรหัสmod_wsgi,ซึ่งดำเนินการเมื่อเริ่มต้นเพื่อรับวัตถุแอปพลิเคชัน สำหรับแอปพลิเคชันส่วนใหญ่ไฟล์ต่อไปนี้ควรเพียงพอ -
from yourapplication import app as application
ทำให้แน่ใจ yourapplication และไลบรารีทั้งหมดที่ใช้งานอยู่บน python load path
การกำหนดค่า Apache
คุณต้องบอก mod_wsgi, ตำแหน่งของแอปพลิเคชันของคุณ
<VirtualHost *>
ServerName example.com
WSGIScriptAlias / C:\yourdir\yourapp.wsgi
<Directory C:\yourdir>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
คอนเทนเนอร์ WSGI แบบสแตนด์อโลน
มีเซิร์ฟเวอร์ยอดนิยมจำนวนมากที่เขียนด้วย Python ซึ่งมีแอปพลิเคชัน WSGI และให้บริการ HTTP
- Gunicorn
- Tornado
- Gevent
- เว็บบิด