第一次使用Pyramid,我有以下代码:
# -*- coding: utf-8 -*-
import os
import logging
import psycopg2
from contextlib import closing
from pyramid.config import Configurator
from pyramid.session import SignedCookieSessionFactory
from pyramid.view import view_config
from waitress import serve
TABLE1_SCHEMA = """
CREATE TABLE IF NOT EXISTS days (
date DATE PRIMARY KEY,
dow SMALLINT NOT NULL)
"""
TABLE2_SCHEMA = """
CREATE TABLE IF NOT EXISTS events (
id serial PRIMARY KEY,
description TEXT NOT NULL,
date DATE REFERENCES days(date) NOT NULL,
time TIME NOT NULL)
"""
logging.basicConfig()
log = logging.getLogger(__file__)
@view_config(route_name='home', renderer='string')
def home(request):
return "Hello World"
def connect_db(settings):
"""Return a connection to the configured database"""
return psycopg2.connect(settings['db'])
def init_db():
"""
Create database tables defined by TABLE1_SCHEMA and TABLE2_SCHEMA
Warning: This function will not update existing table definitions
"""
settings = {}
settings['db'] = os.environ.get(
'DATABASE_URL', 'dbname=calendar_db user=store'
)
with closing(connect_db(settings)) as db:
db.cursor().execute(TABLE1_SCHEMA)
db.cursor().execute(TABLE2_SCHEMA)
db.commit()
def main():
"""Create a configured wsgi app"""
settings = {}
settings['reload_all'] = os.environ.get('DEBUG', True)
settings['debug_all'] = os.environ.get('DEBUG', True)
settings['db'] = os.environ.get(
'DATABASE_URL', 'dbname=calendar_db user=store'
)
# secret value for session signing:
secret = os.environ.get('CALENDAR_SESSION_SECRET', 'secret')
session_factory = SignedCookieSessionFactory(secret)
# configuration setup
config = Configurator(
settings=settings,
session_factory=session_factory
)
config.add_route('home', '/')
config.scan()
app = config.make_wsgi_app()
return app
if __name__ == '__main__':
app = main()
port = os.environ.get('PORT', 5000)
serve(app, host='0.0.0.0', port=port)
我试图让Heroku'工头开始'命令。我收到以下错误:' ImportError:无法导入名称配置器' 我不知道问题可能是什么。请帮忙!