Tôi muốn chạy một CGI Python trên môi trường lưu trữ được chia sẻ. Tôi đi theo ví dụ Flask và đã đưa ra một ứng dụng nhỏ như sau:Định tuyến đường dẫn trong Flask
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
@app.route("/pi")
def pi():
return "3.1416"
if __name__ == "__main__":
app.run()
.htaccess
My chứa:
Options +ExecCGI
AddHandler cgi-script .cgi .py .rb
DirectoryIndex index.cgi index.htm
Và index.cgi
của tôi là
#!/usr/bin/env python
from wsgiref.handlers import CGIHandler
from firstflask import app
CGIHandler().run(app)
Nó bản đồ thành công con đường /
để index()
, tuy nhiên không thể ánh xạ đường dẫn /pi
đến pi()
, thay vào đó lại chuyển lỗi 404. Tôi đoán tôi nhớ điều gì đó hiển nhiên. Cảm ơn đã giúp đỡ.
Đây có phải là Apache không? Tôi nghĩ rằng việc thêm một thẻ Apache có thể sẽ giúp bạn nhận được nhiều câu trả lời hơn vì điều này dường như là vấn đề cấu hình máy chủ web. – six8
Máy chủ của bạn chỉ hỗ trợ CGI hoặc hỗ trợ mod_python hoặc mod_wsgi? Đó là những lựa chọn tốt hơn nhiều. – six8
Cixate, bạn nói đúng với Apache. Tôi mới vào python web-frameworks. Cài đặt cgi có vẻ nhanh hơn mod-wsgi để thiết lập. Đó là lý do tại sao tôi chọn cgi. Một điều nữa, tôi nghi ngờ nó có thể cần url viết lại. Nhưng bởi vì tôi không thấy bất kỳ url-viết lại được đề cập trong tài liệu, vì vậy tôi giả sử không có nhu cầu. Cảm ơn – sdc