我有一個用 python 寫的古老 web 應用程式。它基本上是一堆 .py 檔案。例如:
display.py
:
import cgi import re import string import operator from urllib.parse import urlparse from errors import herigean from routines import * error = false query = cgifieldstoragetodict(cgi.fieldstorage()) opening_index = 0 # flag to indicate whether we're opening the index page if ('what' not in query): query['what'] = 'index' if 'fs' not in query: query['fs'] = str(default_font_size) # open page to display try: fil = open('html/'+query['what']+'.fmt') textlines = fil.read() queryreg = re.compile('query:fs:query') textlines = queryreg.sub(query['fs'],textlines) fil.close() except ioerror: error = true if query['what'] == 'about': try: fil = open('legal/lgpl-3.0.txt') lgpl = fil.read() fil.close() fil = open('legal/gpl.txt') gpl = fil.read() fil.close() fil = open('html/availability.fmt') availability = fil.read() fil.close() except ioerror: error = true if query['what'] == 'corpus': try: fil = open('html/availability.fmt') [...] if error: herigean() else: print(frontmatter)
等等
如何使用虛擬環境中安裝的 mod_wsgi 在 apache 代理程式後面運行它?現在我有一個pythong 3.11虛擬環境,其中安裝了mod_wsgi-express
5。我可以使用以下命令成功運行test.py:
mod_wsgi-express啟動伺服器測試.py
def application(environ, start_response): start_response('200 ok', [('content-type', 'text/html')]) return [b'hello, world!']
如何運行我的舊 python 應用程式?我是否只是將每個 .py 檔案包裝在 def application(environ, start_response):
中?任何幫助將不勝感激。
新增:
該應用程式的 www.index.html
。裡面有一個 <meta http-equiv="refresh" content="0;url=display.py?what=index" />
。這就是目前的服務方式。
附加ii
我無法獲得輸出:使用時
def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) [...] return print(frontmatter)
我在日誌中取得了整個 html,然後是 typeerror: 'nonetype' object is not iterable
和瀏覽器上的內部伺服器錯誤。
我應該使用 yield bytes(html)
而不是 print
。
以上是將舊的 Python Web 應用程式轉變為 WSGI 就緒和 Apache的詳細內容。更多資訊請關注PHP中文網其他相關文章!