Настройка следующая: Apache с WSGI успешно настроен и работает на голом приложении
import sys
# Path of the directory where scripts directory is located.
sys.path.insert(0, 'C:\\Users\\xxx\\Documents\\Programming\\www\\scripts')
from Blog import Blog #Blog.py is a file in the scripts directory
def application(environ, start_response):
status = '200 OK'
output = ''
b = Blog()
for key in environ.keys():
output = output + str(key) + ' : ' + str(environ[key]) + '<br/>'
output = "Test: " + b.title + "<br/>" + b.text + "<br/>" + output
output = b.get_blog() + "<br/>" + output
response_headers = [('Content-type', 'text/html'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
соответствующие части Blog.py выглядят следующим образом
class Blog:
#blogid is a str
def get_blog(self):
conn = sqlite3.connect(self.database)
c = conn.cursor()
# get the blog
c.execute('select * from blogs')
results = []
for row in c:
results.append(row)
c.close()
return results
Журнал ошибок Apacheдает мне:
line 21, in application
output = b.get_blog() + "<br/>" + output
AttributeError: Blog instance has no attribute 'get_blog'
Изменение b.get_blog на str (dir (b)) дает мне: [' doc ', ' init ', ' module ',' get_data ',' text ',' title '], который является старой версией класса Blog, которую я включил в файл wsgi некоторое время назад.Я не могу найти, где он кэшируется или почему он не перезаписан при импорте блога, потому что, если я изменю импорт на импорт только блога и создание экземпляра для Blog.Blog (), он все равно выдаст то же содержимое каталога.