{ "info": { "author": "Zach \"theY4Kman\" Kanzler", "author_email": "they4kman@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# flango!\n\nDo you like the niceties of Flask, but have to use Django for some reason? Are you a lunatic?\n\nIf you answered yes twice, this library is for you! \n\nSupports Python 2.6 to 3.7, and Django 1.8+\n\n\n# Quickstart\n\nInstall package.\n\n```bash\npip install flango\n```\n\nCreate Flango app, add it to your urls.\n\n```python\n# urls.py\nfrom flango import Flango\n\napp = Flango(__name__)\n\n@app.route('/')\ndef index(pk):\n from django.contrib.auth.models import User\n return User.objects.get(pk=pk).first_name\n\nurlpatterns = app.urlpatterns\n```\n\n\n# Benefits\n\n- Access current request anywhere\n \n ```python\n from django import forms\n from flango import request\n \n class MyForm(forms.Form):\n def save(self):\n instance = super(MyForm, self).save(commit=False)\n instance.user = request.user\n instance.save()\n return instance\n ```\n\n\n- Declare your routes alongside your views\n \n ```python\n from flango import render_template\n from myapp import app\n \n @app.route('/about')\n def about():\n return render_template('about.html')\n ```\n\n\n- Typed variable parts\n \n ```python\n from flango import render_template\n from myapp import app\n \n @app.route('/map//')\n def map(lat, long):\n assert isinstance(lat, float)\n assert isinstance(long, float)\n return render_template('map.html', lat=lat, long=long)\n ```\n\n\n- Return response content, status code, and headers directly from views\n \n ```python\n from myapp import app\n \n @app.route('/ok')\n def ok():\n return 'ok'\n \n @app.route('/idk')\n def idk():\n return 'idk', 404\n \n @app.route('/wat')\n def wat():\n return 'wat', 400, {'Content-Type': 'text/wat'}\n ```\n\n\n- Save precious PEP-8 space when building URLs\n \n ```python\n from django.db import models\n from flango import url_for\n \n class MyModel(models.Model):\n def get_invitation_link(self, friend_name):\n return url_for('my-model-invite', id=self.id, friend_name=friend_name)\n ```\n\n\n# Using `flango.request` with regular Django views\n\nFlango wraps your view functions to provide the `request` object globally. When your form or other code which accesses `flango.request` is called from a regular Django view, it will fail.\n\nTo fix this, add Flango's `global_request_middleware` to your `settings.MIDDLEWARE`:\n```python\n# settings.py\nMIDDLEWARE = (\n 'flango.global_request_middleware',\n # ...\n)\n```\n\nFor best results, place it at the top of the list. This allows you to use `flango.request` in other middlewares.", "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/theY4Kman/flango", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "flango", "package_url": "https://pypi.org/project/flango/", "platform": "", "project_url": "https://pypi.org/project/flango/", "project_urls": { "Homepage": "https://github.com/theY4Kman/flango" }, "release_url": "https://pypi.org/project/flango/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "Flask-like interface for Django", "version": "0.0.2" }, "last_serial": 3810225, "releases": { "0.0.0": [], "0.0.1": [ { "comment_text": "", "digests": { "md5": "4b47b4113ed6cc47d74f9ee7d5a8d1c2", "sha256": "9e3ef86d98311c784d0d325f19c06b4578d9b87582ee7375dffbf33294b79f5f" }, "downloads": -1, "filename": "flango-0.0.1-py2.7.egg", "has_sig": false, "md5_digest": "4b47b4113ed6cc47d74f9ee7d5a8d1c2", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9852, "upload_time": "2017-02-11T18:34:59", "url": "https://files.pythonhosted.org/packages/55/66/84f9c51865916888c57c16de0c4ad56961a6e142152c0d21f0d587c2ec0e/flango-0.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "b88796ccd15e56cbd27849ce819bb658", "sha256": "d71d207be8d828864a9e7a8048b41a25d23ca054b2d8bb96cddcb4fd8a5165a5" }, "downloads": -1, "filename": "flango-0.0.1.zip", "has_sig": false, "md5_digest": "b88796ccd15e56cbd27849ce819bb658", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6554, "upload_time": "2017-02-11T18:35:01", "url": "https://files.pythonhosted.org/packages/f7/31/b83269246c50f98897017f42dd6f79a0d641dfefc26f1d5ad7a336207a4f/flango-0.0.1.zip" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "b734fc3029fa517ae42cf32c96861d9f", "sha256": "59b75bf2f611a3036d9cb0b83ae7ef2d8e8657a599d54b7e6ec88987c8b469c3" }, "downloads": -1, "filename": "flango-0.0.2.tar.gz", "has_sig": false, "md5_digest": "b734fc3029fa517ae42cf32c96861d9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5456, "upload_time": "2018-04-26T13:26:18", "url": "https://files.pythonhosted.org/packages/15/92/285abcfd0d7926e54f5a126fc9b5554fd34e7d438519fd61b1276cfa4f02/flango-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b734fc3029fa517ae42cf32c96861d9f", "sha256": "59b75bf2f611a3036d9cb0b83ae7ef2d8e8657a599d54b7e6ec88987c8b469c3" }, "downloads": -1, "filename": "flango-0.0.2.tar.gz", "has_sig": false, "md5_digest": "b734fc3029fa517ae42cf32c96861d9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5456, "upload_time": "2018-04-26T13:26:18", "url": "https://files.pythonhosted.org/packages/15/92/285abcfd0d7926e54f5a126fc9b5554fd34e7d438519fd61b1276cfa4f02/flango-0.0.2.tar.gz" } ] }