diff options
| author | Michael Merickel <michael@merickel.org> | 2015-10-21 17:33:13 -0500 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2015-10-21 17:33:13 -0500 |
| commit | 0a960a39461ff5f426159153f91a43b6aa5bde74 (patch) | |
| tree | 6d535e6984bc43dbbfd052fdaa8afce21cbba293 | |
| parent | adb9377a963d7fdc7b7bf616740fb5dd2e40b2bf (diff) | |
| parent | fd260cb9cdc3a687073827fa85dcf15eecff0dc4 (diff) | |
| download | pyramid-0a960a39461ff5f426159153f91a43b6aa5bde74.tar.gz pyramid-0a960a39461ff5f426159153f91a43b6aa5bde74.tar.bz2 pyramid-0a960a39461ff5f426159153f91a43b6aa5bde74.zip | |
Merge pull request #2025 from ergo/feature/alchemy-scaffold-update
Rebased changes to models and templating for new sqlalchemy scaffold
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/__init__.py | 5 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/models/__init__.py | 3 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/models/meta.py (renamed from pyramid/scaffolds/alchemy/+package+/models.py) | 20 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/models/mymodel.py | 17 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/scripts/initializedb.py | 4 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/templates/layout.jinja2_tmpl (renamed from pyramid/scaffolds/alchemy/+package+/templates/mytemplate.pt_tmpl) | 15 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/templates/mytemplate.jinja2_tmpl | 8 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/tests.py_tmpl | 14 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/views/__init__.py | 0 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/views/default.py_tmpl (renamed from pyramid/scaffolds/alchemy/+package+/views.py_tmpl) | 12 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/setup.py_tmpl | 2 |
11 files changed, 56 insertions, 44 deletions
diff --git a/pyramid/scaffolds/alchemy/+package+/__init__.py b/pyramid/scaffolds/alchemy/+package+/__init__.py index 116839351..7994bbfa8 100644 --- a/pyramid/scaffolds/alchemy/+package+/__init__.py +++ b/pyramid/scaffolds/alchemy/+package+/__init__.py @@ -1,11 +1,12 @@ from pyramid.config import Configurator + def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ config = Configurator(settings=settings) - config.include('pyramid_chameleon') - config.include('.models') + config.include('pyramid_jinja2') + config.include('.models.meta') config.add_static_view('static', 'static', cache_max_age=3600) config.add_route('home', '/') config.scan() diff --git a/pyramid/scaffolds/alchemy/+package+/models/__init__.py b/pyramid/scaffolds/alchemy/+package+/models/__init__.py new file mode 100644 index 000000000..a6fe0d6ee --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/models/__init__.py @@ -0,0 +1,3 @@ +# import all models classes here for sqlalchemy mappers +# to pick up +from .mymodel import MyModel # flake8: noqa diff --git a/pyramid/scaffolds/alchemy/+package+/models.py b/pyramid/scaffolds/alchemy/+package+/models/meta.py index 832e67b37..b72b45f9f 100644 --- a/pyramid/scaffolds/alchemy/+package+/models.py +++ b/pyramid/scaffolds/alchemy/+package+/models/meta.py @@ -1,10 +1,3 @@ -from sqlalchemy import ( - Column, - Index, - Integer, - Text, - ) - from sqlalchemy import engine_from_config from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker @@ -38,7 +31,8 @@ def includeme(config): def get_session(transaction_manager, dbmaker): dbsession = dbmaker() - zope.sqlalchemy.register(dbsession, transaction_manager=transaction_manager) + zope.sqlalchemy.register(dbsession, + transaction_manager=transaction_manager) return dbsession @@ -50,13 +44,3 @@ def get_dbmaker(engine): dbmaker = sessionmaker() dbmaker.configure(bind=engine) return dbmaker - - -class MyModel(Base): - __tablename__ = 'models' - id = Column(Integer, primary_key=True) - name = Column(Text) - value = Column(Integer) - - -Index('my_index', MyModel.name, unique=True, mysql_length=255) diff --git a/pyramid/scaffolds/alchemy/+package+/models/mymodel.py b/pyramid/scaffolds/alchemy/+package+/models/mymodel.py new file mode 100644 index 000000000..5a2b5890c --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/models/mymodel.py @@ -0,0 +1,17 @@ +from .meta import Base +from sqlalchemy import ( + Column, + Index, + Integer, + Text, +) + + +class MyModel(Base): + __tablename__ = 'models' + id = Column(Integer, primary_key=True) + name = Column(Text) + value = Column(Integer) + + +Index('my_index', MyModel.name, unique=True, mysql_length=255) diff --git a/pyramid/scaffolds/alchemy/+package+/scripts/initializedb.py b/pyramid/scaffolds/alchemy/+package+/scripts/initializedb.py index 43e25bff8..f0d09729e 100644 --- a/pyramid/scaffolds/alchemy/+package+/scripts/initializedb.py +++ b/pyramid/scaffolds/alchemy/+package+/scripts/initializedb.py @@ -9,13 +9,13 @@ from pyramid.paster import ( from pyramid.scripts.common import parse_vars -from ..models import ( - MyModel, +from ..models.meta import ( Base, get_session, get_engine, get_dbmaker, ) +from ..models.mymodel import MyModel def usage(argv): diff --git a/pyramid/scaffolds/alchemy/+package+/templates/mytemplate.pt_tmpl b/pyramid/scaffolds/alchemy/+package+/templates/layout.jinja2_tmpl index 3f1d23d47..51e382654 100644 --- a/pyramid/scaffolds/alchemy/+package+/templates/mytemplate.pt_tmpl +++ b/pyramid/scaffolds/alchemy/+package+/templates/layout.jinja2_tmpl @@ -1,12 +1,12 @@ <!DOCTYPE html> -<html lang="${request.locale_name}"> +<html lang="\{\{request.locale_name\}\}"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="pyramid web application"> <meta name="author" content="Pylons Project"> - <link rel="shortcut icon" href="${request.static_url('{{package}}:static/pyramid-16x16.png')}"> + <link rel="shortcut icon" href="\{\{request.static_url('{{package}}:static/pyramid-16x16.png')\}\}"> <title>Alchemy Scaffold for The Pyramid Web Framework</title> @@ -14,7 +14,7 @@ <link href="//oss.maxcdn.com/libs/twitter-bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet"> <!-- Custom styles for this scaffold --> - <link href="${request.static_url('{{package}}:static/theme.css')}" rel="stylesheet"> + <link href="\{\{request.static_url('{{package}}:static/theme.css')\}\}" rel="stylesheet"> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> @@ -29,13 +29,12 @@ <div class="container"> <div class="row"> <div class="col-md-2"> - <img class="logo img-responsive" src="${request.static_url('{{package}}:static/pyramid.png')}" alt="pyramid web framework"> + <img class="logo img-responsive" src="\{\{request.static_url('{{package}}:static/pyramid.png')\}\}" alt="pyramid web framework"> </div> <div class="col-md-10"> - <div class="content"> - <h1><span class="font-semi-bold">Pyramid</span> <span class="smaller">Alchemy scaffold</span></h1> - <p class="lead">Welcome to <span class="font-normal">${project}</span>, an application generated by<br>the <span class="font-normal">Pyramid Web Framework {{pyramid_version}}</span>.</p> - </div> + {% block content %} + <p>No content</p> + {% endblock content %} </div> </div> <div class="row"> diff --git a/pyramid/scaffolds/alchemy/+package+/templates/mytemplate.jinja2_tmpl b/pyramid/scaffolds/alchemy/+package+/templates/mytemplate.jinja2_tmpl new file mode 100644 index 000000000..01fe5b8e3 --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/templates/mytemplate.jinja2_tmpl @@ -0,0 +1,8 @@ +{% extends "layout.jinja2" %} + +{% block content %} +<div class="content"> + <h1><span class="font-semi-bold">Pyramid</span> <span class="smaller">Alchemy scaffold</span></h1> + <p class="lead">Welcome to <span class="font-normal">\{\{project\}\}</span>, an application generated by<br>the <span class="font-normal">Pyramid Web Framework {{pyramid_version}}</span>.</p> +</div> +{% endblock content %} diff --git a/pyramid/scaffolds/alchemy/+package+/tests.py_tmpl b/pyramid/scaffolds/alchemy/+package+/tests.py_tmpl index 4ce706077..074c7a773 100644 --- a/pyramid/scaffolds/alchemy/+package+/tests.py_tmpl +++ b/pyramid/scaffolds/alchemy/+package+/tests.py_tmpl @@ -13,10 +13,10 @@ class BaseTest(unittest.TestCase): self.config = testing.setUp(settings={ 'sqlalchemy.url': 'sqlite:///:memory:' }) - self.config.include('.models') + self.config.include('.models.meta') settings = self.config.get_settings() - from .models import ( + from .models.meta import ( get_session, get_engine, get_dbmaker, @@ -28,11 +28,11 @@ class BaseTest(unittest.TestCase): self.session = get_session(transaction.manager, dbmaker) def init_database(self): - from .models import Base + from .models.meta import Base Base.metadata.create_all(self.engine) def tearDown(self): - from .models import Base + from .models.meta import Base testing.tearDown() transaction.abort() @@ -45,13 +45,13 @@ class TestMyViewSuccessCondition(BaseTest): super(TestMyViewSuccessCondition, self).setUp() self.init_database() - from .models import MyModel + from .models.mymodel import MyModel model = MyModel(name='one', value=55) self.session.add(model) def test_passing_view(self): - from .views import my_view + from .views.default import my_view info = my_view(dummy_request(self.session)) self.assertEqual(info['one'].name, 'one') self.assertEqual(info['project'], '{{project}}') @@ -60,6 +60,6 @@ class TestMyViewSuccessCondition(BaseTest): class TestMyViewFailureCondition(BaseTest): def test_failing_view(self): - from .views import my_view + from .views.default import my_view info = my_view(dummy_request(self.session)) self.assertEqual(info.status_int, 500) diff --git a/pyramid/scaffolds/alchemy/+package+/views/__init__.py b/pyramid/scaffolds/alchemy/+package+/views/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/views/__init__.py diff --git a/pyramid/scaffolds/alchemy/+package+/views.py_tmpl b/pyramid/scaffolds/alchemy/+package+/views/default.py_tmpl index b559b31ce..43fb33e05 100644 --- a/pyramid/scaffolds/alchemy/+package+/views.py_tmpl +++ b/pyramid/scaffolds/alchemy/+package+/views/default.py_tmpl @@ -3,19 +3,20 @@ from pyramid.view import view_config from sqlalchemy.exc import DBAPIError -from .models import MyModel +from ..models.mymodel import MyModel -@view_config(route_name='home', renderer='templates/mytemplate.pt') +@view_config(route_name='home', renderer='../templates/mytemplate.jinja2') def my_view(request): try: - one = request.dbsession.query(MyModel).filter(MyModel.name == 'one').first() + query = request.dbsession.query(MyModel) + one = query.filter(MyModel.name == 'one').first() except DBAPIError: - return Response(conn_err_msg, content_type='text/plain', status_int=500) + return Response(db_err_msg, content_type='text/plain', status_int=500) return {'one': one, 'project': '{{project}}'} -conn_err_msg = """\ +db_err_msg = """\ Pyramid is having a problem using your SQL database. The problem might be caused by one of the following things: @@ -30,4 +31,3 @@ might be caused by one of the following things: After you fix the problem, please restart the Pyramid application to try it again. """ - diff --git a/pyramid/scaffolds/alchemy/setup.py_tmpl b/pyramid/scaffolds/alchemy/setup.py_tmpl index 9496b9948..af193a73d 100644 --- a/pyramid/scaffolds/alchemy/setup.py_tmpl +++ b/pyramid/scaffolds/alchemy/setup.py_tmpl @@ -10,7 +10,7 @@ with open(os.path.join(here, 'CHANGES.txt')) as f: requires = [ 'pyramid', - 'pyramid_chameleon', + 'pyramid_jinja2', 'pyramid_debugtoolbar', 'pyramid_tm', 'SQLAlchemy', |
