{ "info": { "author": "SiLeader and Cerussite", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Flask", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware" ], "description": "PyMVC\n================\n\n© 2018 SiLeader and Cerussite.\n\n## Overview\nPyMVC is MVC-like server side framework for python.\nThis framework is using Flask.\n\n## How to\n### How to Install\n```shell\npip install pymvc\n```\n\n### How to Use\n```python\nimport pymvc\n\n\n# setting: ex1\npymvc.settings.database.database = \"pymmvc_example\"\n\n\n# router: ex1. Add route by method\nclass TopController(pymvc.Controller):\n VIEW = \"top.html\"\n\n def get(self, **kwargs):\n pass\n\n\npymvc.add_route(\"/\", TopController)\n\n\n# router: ex2. Add route by decorator\n@pymvc.route(\"/users/\")\nclass UserController(pymvc.Controller):\n VIEW = \"user.html\"\n\n def get(self, id):\n return pymvc.render(id=id)\n\n\n# model: ex1. User manager model\nclass User(pymvc.Model):\n name = pymvc.StringType()\n id = pymvc.UniqueIdType(primary=True)\n\n\nif __name__ == '__main__':\n pymvc.app.run()\n```\n\n`pymvc.app` is Flask instance.\n\n1. set database name. (use `pymvc.settings.database.database` property)\n1. create classes\n + Controller class\n + Model class\n1. register controller classes to router.\n1. start app\n + call `run()` method.\n + use `pymvc.app` as WSGI app.\n\n\n### Controller\nController class has `VIEW` (class variable) and `get`, `post`, `put` and `delete` instance methods.\nif you want to support GET method, override `get` method.\nthese functions' default operation is `return abort(404)`.\n\n### Model\nModel class is ORM for MongoDB (using pymongo).\nif inherit it, it creates collection.\n\ncollection's data is specified as class variable.\n\n```python\nimport pymvc\n\n\nclass Other1(pymvc.Model):\n pass\n\n\nclass ModelExample(pymvc.Model):\n string_data = pymvc.StringType() # string\n int_data = pymvc.IntType() # integer\n float_data = pymvc.FloatType() # float\n unique_data = pymvc.UniqueIdType() # UUID\n foreign_data1 = pymvc.ForeignType(Other1) # other collection\n foreign_data2 = pymvc.ForeignType(\"Other2\") # other collection\n\n\nclass Other2(pymvc.Model):\n pass\n\n```\n\ncollection name is snake case of class name. (e.g. User: user, UserInfo: user_info)\n\n#### Model data type\nmodel data types' constructor parameters are `primary` and `default`.\n\nif `primary` is `True`, this value is marked as primary key.\n`default` is default value.\n\n### View\nPyMVC add some Jinja2 function.\n\n| function | operation |\n|:--------:|:----------|\n| load_one(model, primary=None, **query) | load one data (using find_one) |\n| load_many(model, primary=None, **query) | load all data match query and primary data |\n\n`model` is require parameter.\n`primary` is primary key value.\nkey value hint is `**query`.\n\n## Dependencies\n+ Flask\n+ PyMongo\n+ MongoDB\n\n## License\nApache License 2.0\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/SiLeader/pymvc", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "pymvc", "package_url": "https://pypi.org/project/pymvc/", "platform": "", "project_url": "https://pypi.org/project/pymvc/", "project_urls": { "Homepage": "https://github.com/SiLeader/pymvc" }, "release_url": "https://pypi.org/project/pymvc/0.1.3/", "requires_dist": [ "Flask (==1.0.2)", "itsdangerous (==0.24)", "Jinja2 (==2.10)", "MarkupSafe (==1.0)", "pymongo (==3.7.0)", "Werkzeug (==0.14.1)", "click (==6.7)" ], "requires_python": "", "summary": "MVC framework for Python", "version": "0.1.3" }, "last_serial": 4103652, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fbce86ede975b3f9d095dfc9a1f12580", "sha256": "70ddbfb840478472d7e6f5b2d01d8ba640799eadd2d3c9f5a1ce171fd9c3b1a6" }, "downloads": -1, "filename": "pymvc-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fbce86ede975b3f9d095dfc9a1f12580", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19110, "upload_time": "2018-07-14T12:11:08", "url": "https://files.pythonhosted.org/packages/10/09/da42c1eeaf148bacbeb165f77816d9b50beb64f2631846540fc62b151294/pymvc-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee7a3bc6a0a42f59a9018ece6670415a", "sha256": "514b8eb132cc0b959ad67d8a7a82bad3a6c3d9d5e5abdba07ad503b3ee39983e" }, "downloads": -1, "filename": "pymvc-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ee7a3bc6a0a42f59a9018ece6670415a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11566, "upload_time": "2018-07-14T12:11:09", "url": "https://files.pythonhosted.org/packages/69/59/46734c669d71d0b5b338fc7f7b6f99fc467574894bb55371ff7dd8ed2acb/pymvc-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9917dec3a01a9ece263da5509f26b070", "sha256": "6a776780c11c333238a72327f87bd383b3d8b50805be17c8bedca974dcb03278" }, "downloads": -1, "filename": "pymvc-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9917dec3a01a9ece263da5509f26b070", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9387, "upload_time": "2018-07-15T05:53:07", "url": "https://files.pythonhosted.org/packages/b2/a4/5ceeff80c66d98eff5bcbd8efbf920d67770d2a14007ad206604ad7cca64/pymvc-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1ab1f62bc9e16c7548d5f67abdcba41", "sha256": "4b73f4f8ecf206f878b9f828bca8d11255921c0a96857ce9dc07190de9212f4a" }, "downloads": -1, "filename": "pymvc-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f1ab1f62bc9e16c7548d5f67abdcba41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11552, "upload_time": "2018-07-15T05:53:09", "url": "https://files.pythonhosted.org/packages/8f/43/509ab0ea70b6e5e494d30fed4a30ef919c73e73539866316d33febe2c3f8/pymvc-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d8bd6786feedfbd1cbe502fe2a3f4251", "sha256": "6a85513125faf6b80b90ac7663e0499052d783bc702f22ad96d9fe6ce5332929" }, "downloads": -1, "filename": "pymvc-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d8bd6786feedfbd1cbe502fe2a3f4251", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20784, "upload_time": "2018-07-16T12:50:57", "url": "https://files.pythonhosted.org/packages/f6/8f/b311d9f62729385bca6c65c6d1fad87244d35c74d4fffaa211c5e417daa7/pymvc-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32dd3960f795958cf356c06767d77fe4", "sha256": "68be721d10878a66f831ffdc155136b08665f1b26c808f5db613777e0cbc1539" }, "downloads": -1, "filename": "pymvc-0.1.2.tar.gz", "has_sig": false, "md5_digest": "32dd3960f795958cf356c06767d77fe4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13288, "upload_time": "2018-07-16T12:50:58", "url": "https://files.pythonhosted.org/packages/e1/84/f47d2820cc6e1987c7e0df7f6c0188f803580776461901b1c4da347251f5/pymvc-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "5947a23932f7b479fa1527f97ae17013", "sha256": "379b773fb4181172295a85dfddde78d919758ed90737196e6c30c152bb9b361f" }, "downloads": -1, "filename": "pymvc-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5947a23932f7b479fa1527f97ae17013", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21285, "upload_time": "2018-07-26T09:26:35", "url": "https://files.pythonhosted.org/packages/6f/b9/b49db8335bb4a9b32112fc839bd787a80fa2112b34679a0d767d892c2ff5/pymvc-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53d136af2fb7b1cf43ce8c1746c03981", "sha256": "dd9a8f91c227a8ebe19347b54e7e34ff2855959bb23607d4eb62b4df07daec47" }, "downloads": -1, "filename": "pymvc-0.1.3.tar.gz", "has_sig": false, "md5_digest": "53d136af2fb7b1cf43ce8c1746c03981", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13739, "upload_time": "2018-07-26T09:26:37", "url": "https://files.pythonhosted.org/packages/dc/09/6e8b5a6d8eaf2c971e8e01b61fcb747ca1cf9d486d4a2cfcc7917fdc16d3/pymvc-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5947a23932f7b479fa1527f97ae17013", "sha256": "379b773fb4181172295a85dfddde78d919758ed90737196e6c30c152bb9b361f" }, "downloads": -1, "filename": "pymvc-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5947a23932f7b479fa1527f97ae17013", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21285, "upload_time": "2018-07-26T09:26:35", "url": "https://files.pythonhosted.org/packages/6f/b9/b49db8335bb4a9b32112fc839bd787a80fa2112b34679a0d767d892c2ff5/pymvc-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53d136af2fb7b1cf43ce8c1746c03981", "sha256": "dd9a8f91c227a8ebe19347b54e7e34ff2855959bb23607d4eb62b4df07daec47" }, "downloads": -1, "filename": "pymvc-0.1.3.tar.gz", "has_sig": false, "md5_digest": "53d136af2fb7b1cf43ce8c1746c03981", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13739, "upload_time": "2018-07-26T09:26:37", "url": "https://files.pythonhosted.org/packages/dc/09/6e8b5a6d8eaf2c971e8e01b61fcb747ca1cf9d486d4a2cfcc7917fdc16d3/pymvc-0.1.3.tar.gz" } ] }