Metadata-Version: 1.1
Name: pythononwheels
Version: 0.857b0
Summary: The simple, quick and easy generative web framework for python
Home-page: http://www.pythononwheels.org
Author: khz
Author-email: khz@tzi.org
License: MIT
Description: .. figure:: http://www.pythononwheels.org/static/images/pow_logo_300.png
           :alt: Pow logo
        
           Pow logo
        
        PythonOnWheels reStructured and reImplemented.
        =================================================
        I call it *SQUEEZY* => for Simple, Quick and Easy.
        
        Principle
        ---------------
        > Designed for simplicity, happiness and Quick results!
        
        As simple to use as possible. Everything you always need on board. 
        Batteries included! (tornado Webserver, SQLite DB, NoSQL DBs: tinyDB, MongoDB, MongoDB Atlas Service)
        Non intrusive! You can always escape and go RAW. 
        
        Newly implemented:
        ---------------------
        - MongoDB support (Transactions usable with Mongo >4)
        - MongoDB Atlas support for even quicker start in the cloud
        - Observer for Models (Like ActiveRedcord. Just add a class Named: ModelNameObserver. Will be found and used by convention)
        - Added Dirty Model support (like ActiveRecord). Track changes, Show, rollback.
        
        
        Strong Foundation:
        ------------------
        -  python 3.x
        -  tornado webserver
        -  sqlalchemy ORM onboard (sqlite, mysql, postgres, oralce, ms-sql ...)
        -  DB migrations generated for you (based on alembic)
        -  cerberus schemas and validation on board
        -  template engine (tornado templates)
        -  Many SQL DBs[sqlite, mysql, postgres, ms-sql,orcale ] NoSql DBs: tinyDB, MongoDB and ElasticSearch on board... 
        -  authentication with Twitter, Google on board
        
        Super easy, quick to start and all the basics on board:
        -------------------------------------------------------
        
        -  super easy relations with decorators @relations.has\_many("comments")
        -  super easy REST routing with decorators @app.add\_restful\_routes(),
        -  routing decorator @app.add\_route(route)
        -  db migrations autogenerated using alembic in the back
        -  validation on board with cerberus schemas
        -  use the same schema descrition for all model types (sql, nosql,
           elastic..)
        -  generate\_models script
        -  generate\_migrations script
        -  update\_db script
        -  generate\_handlers
        -  generate\_app
        -  automatic scaffolding views (work in progress)
        
        Code examples
        -------------
        
        Routes:
        ~~~~~~~
        
        ::
        
            # You can use regex routes
            # this will call the myget method on HTTP GET calls and will hand over the re-group as the 1st parameter.
            @app.add_route("/index/([0-9]+)*", dispatch={"get" : "myget"})
            # Or you can also use Flask/Werkzeug routes
            @app.add_route('/index/<int:year>', dispatch={"get" : "myyear"})
            class IndexdHandler(BaseHandler):
                def myget(self, index=None):
                    print("  index:" + str(index))
                    self.render("index.tmpl")
                
                def myyear(self, year=None):
                    self.write("I got year: " + str(year))
                
        
        Relations: (SQL Models)
        ~~~~~~~~~~~~~~~~~~~~~~~
        
        ::
        
            @relation.has_many("comments")
            class Post(Base):
                # a blog Post
                schema = {
                    'text'      : {'type': 'string'},
                    'name'      : {'type': 'string', 'maxlength' : 35},
                    'votes'     : {'type': 'integer'},
                    'status'    : {'type': 'string', 'allowed' : ['ready to publish', 'needs review', 'draft'] },
                    'published' : {'type': 'boolean', 'default' : False }
        
                }
        
        NoSQL Models
        ~~~~~~~~~~~~~~~~~~~~~~~
        
        ::
        
            class Post(Base):
                # a blog Post
                schema = {
                    'text'      : {'type': 'string'},
                    'name'      : {'type': 'string', 'maxlength' : 35},
                    'votes'     : {'type': 'integer'},
                    'status'    : {'type': 'string', 'allowed' : ['ready to publish', 'needs review', 'draft'] },
                    'published' : {'type': 'boolean', 'default' : False },
                    'tags'      : {'type': 'list', 'default' : [] }
        
                }
        
        
        Hope you see that SQL and NoSQL are pretty much the same. No need for relations in NoSQL. But you have enhanced
        datatypes like lists and dicts in NoSQL.
        A NoSql List can be mapped to a SQL  @relation.has_many() ....
        
        Enjoy!
        
        Check: `The PythonOnWheels Homepage <http://www.pythononwheels.org>`__
        ----------------------------------------------------------------------
        
Keywords: framework web development
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules 
