pythononwheels


Namepythononwheels JSON
Version 0.832b0 PyPI version JSON
download
home_pagehttp://www.pythononwheels.org
SummaryThe simple, quick and easy generative web framework for python
upload_time2018-02-07 22:24:41
maintainer
docs_urlNone
authorkhz
requires_python
licenseMIT
keywords framework web development
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. figure:: http://www.pythononwheels.org/static/images/pow_logo_300.png
   :alt: Pow logo

   Pow logo

This is the new pow 2017. And it's really good.
===============================================

(ok I might be biased ;)

But it's by far the best PoW (concept and implementation) ever! (Ever,ever, ever!!)

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,
ElasticSearch, MongoDB following next) Non intrusive! You can always
escape and go RAW.

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>`__
----------------------------------------------------------------------



            

Raw data

            {
    "maintainer": "", 
    "docs_url": null, 
    "requires_python": "", 
    "maintainer_email": "", 
    "cheesecake_code_kwalitee_id": null, 
    "keywords": "framework web development", 
    "upload_time": "2018-02-07 22:24:41", 
    "author": "khz", 
    "home_page": "http://www.pythononwheels.org", 
    "download_url": "https://pypi.python.org/packages/5c/62/10a0d1942bb96924e2a44dc1045e9476ff773356a84ed96ecac1a3ce244e/pythononwheels-0.832b0.tar.gz", 
    "platform": "", 
    "version": "0.832b0", 
    "cheesecake_documentation_id": null, 
    "description": ".. figure:: http://www.pythononwheels.org/static/images/pow_logo_300.png\n   :alt: Pow logo\n\n   Pow logo\n\nThis is the new pow 2017. And it's really good.\n===============================================\n\n(ok I might be biased ;)\n\nBut it's by far the best PoW (concept and implementation) ever! (Ever,ever, ever!!)\n\nI call it *SQUEEZY* => for Simple, Quick and Easy.\n\nPrinciple\n---------\n\n    Designed for simplicity, happiness and Quick results!\n\nAs simple to use as possible. Everything you always need on board.\nBatteries included! (tornado Webserver, SQLite DB, NoSQL DBs: tinyDB,\nElasticSearch, MongoDB following next) Non intrusive! You can always\nescape and go RAW.\n\nStrong Foundation:\n------------------\n\n-  python 3.x\n-  tornado webserver\n-  sqlalchemy ORM onboard (sqlite, mysql, postgres, oralce, ms-sql ...)\n-  DB migrations generated for you (based on alembic)\n-  cerberus schemas and validation on board\n-  template engine (tornado templates)\n-  Many SQL DBs[sqlite, mysql, postgres, ms-sql,orcale ] NoSql DBs: tinyDB, MongoDB and ElasticSearch on board... \n-  authentication with Twitter, Google on board\n\nSuper easy, quick to start and all the basics on board:\n-------------------------------------------------------\n\n-  super easy relations with decorators @relations.has\\_many(\"comments\")\n-  super easy REST routing with decorators @app.add\\_restful\\_routes(),\n-  routing decorator @app.add\\_route(route)\n-  db migrations autogenerated using alembic in the back\n-  validation on board with cerberus schemas\n-  use the same schema descrition for all model types (sql, nosql,\n   elastic..)\n-  generate\\_models script\n-  generate\\_migrations script\n-  update\\_db script\n-  generate\\_handlers\n-  generate\\_app\n-  automatic scaffolding views (work in progress)\n\nCode examples\n-------------\n\nRoutes:\n~~~~~~~\n\n::\n\n    # You can use regex routes\n    # this will call the myget method on HTTP GET calls and will hand over the re-group as the 1st parameter.\n    @app.add_route(\"/index/([0-9]+)*\", dispatch={\"get\" : \"myget\"})\n    # Or you can also use Flask/Werkzeug routes\n    @app.add_route('/index/<int:year>', dispatch={\"get\" : \"myyear\"})\n    class IndexdHandler(BaseHandler):\n        def myget(self, index=None):\n            print(\"  index:\" + str(index))\n            self.render(\"index.tmpl\")\n\n        def myyear(self, year=None):\n            self.write(\"I got year: \" + str(year))\n\n\nRelations: (SQL Models)\n~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n    @relation.has_many(\"comments\")\n    class Post(Base):\n        # a blog Post\n        schema = {\n            'text'      : {'type': 'string'},\n            'name'      : {'type': 'string', 'maxlength' : 35},\n            'votes'     : {'type': 'integer'},\n            'status'    : {'type': 'string', 'allowed' : ['ready to publish', 'needs review', 'draft'] },\n            'published' : {'type': 'boolean', 'default' : False }\n\n        }\n\nNoSQL Models\n~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n    class Post(Base):\n        # a blog Post\n        schema = {\n            'text'      : {'type': 'string'},\n            'name'      : {'type': 'string', 'maxlength' : 35},\n            'votes'     : {'type': 'integer'},\n            'status'    : {'type': 'string', 'allowed' : ['ready to publish', 'needs review', 'draft'] },\n            'published' : {'type': 'boolean', 'default' : False },\n            'tags'      : {'type': 'list', 'default' : [] }\n\n        }\n\n\nHope you see that SQL and NoSQL are pretty much the same. No need for relations in NoSQL. But you have enhanced\ndatatypes like lists and dicts in NoSQL.\nA NoSql List can be mapped to a SQL  @relation.has_many() ....\n\nEnjoy!\n\nCheck: `The PythonOnWheels Homepage <http://www.pythononwheels.org>`__\n----------------------------------------------------------------------\n\n\n", 
    "lcname": "pythononwheels", 
    "bugtrack_url": null, 
    "github": false, 
    "name": "pythononwheels", 
    "license": "MIT", 
    "summary": "The simple, quick and easy generative web framework for python", 
    "split_keywords": [
        "framework", 
        "web", 
        "development"
    ], 
    "author_email": "khz@tzi.org", 
    "urls": [
        {
            "has_sig": false, 
            "upload_time": "2018-02-07T22:24:32", 
            "comment_text": "", 
            "python_version": "py3", 
            "url": "https://pypi.python.org/packages/6f/ae/bfe85cffcba1e88acbe9f73c9011920b1a37a399dcdc9809eb8c85e36149/pythononwheels-0.832b0-py3-none-any.whl", 
            "md5_digest": "32685a2df1dc092d93fa2b5ad444c63d", 
            "downloads": 0, 
            "filename": "pythononwheels-0.832b0-py3-none-any.whl", 
            "packagetype": "bdist_wheel", 
            "path": "6f/ae/bfe85cffcba1e88acbe9f73c9011920b1a37a399dcdc9809eb8c85e36149/pythononwheels-0.832b0-py3-none-any.whl", 
            "size": 1730023
        }, 
        {
            "has_sig": false, 
            "upload_time": "2018-02-07T22:24:41", 
            "comment_text": "", 
            "python_version": "source", 
            "url": "https://pypi.python.org/packages/5c/62/10a0d1942bb96924e2a44dc1045e9476ff773356a84ed96ecac1a3ce244e/pythononwheels-0.832b0.tar.gz", 
            "md5_digest": "14dc91a425d171f94320f048012f3317", 
            "downloads": 0, 
            "filename": "pythononwheels-0.832b0.tar.gz", 
            "packagetype": "sdist", 
            "path": "5c/62/10a0d1942bb96924e2a44dc1045e9476ff773356a84ed96ecac1a3ce244e/pythononwheels-0.832b0.tar.gz", 
            "size": 1679419
        }
    ], 
    "_id": null, 
    "cheesecake_installability_id": null
}
        
khz