Saya mempunyai aplikasi web purba yang ditulis dalam python. Ia pada asasnya sekumpulan fail .py. Contohnya:
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)
Tunggu
Bagaimana untuk menjalankannya di belakang proksi apache menggunakan mod_wsgi yang dipasang dalam persekitaran maya? Kini saya mempunyai persekitaran maya pythong 3.11 dengan mod_wsgi-express
5 dipasang. Saya berjaya menjalankan test.py menggunakan arahan berikut:
mod_wsgi-express启动服务器测试.py
def application(environ, start_response): start_response('200 ok', [('content-type', 'text/html')]) return [b'hello, world!']
Bagaimana untuk menjalankan aplikasi python lama saya? Adakah saya hanya membungkus setiap fail .py dalam def application(environ, start_response):
? Sebarang bantuan amatlah dihargai.
Tambah :
Apl ini ialah www.index.html
。里面有一个 <meta http-equiv="refresh" content="0;url=display.py?what=index" />
. Beginilah ia dihidangkan pada masa ini.
Tambahan ii
Saya tidak boleh mendapatkan output: apabila menggunakan
def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) [...] return print(frontmatter)
Saya mendapat keseluruhan html dalam log, kemudian typeerror: objek 'nonetype' tidak boleh diulang
dan ralat pelayan dalaman pada penyemak imbas. typeerror: 'nonetype' object is not iterable
和浏览器上的内部服务器错误。
我应该使用 yield bytes(html)
而不是 print
yield bytes(html)
dan bukannya print
. 🎜Atas ialah kandungan terperinci Tukar aplikasi web Python lama anda kepada sedia WSGI dan Apache. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!