美文网首页
09 - Reusable apps

09 - Reusable apps

作者: AureliusShu | 来源:发表于2018-09-12 22:15 被阅读0次

    Reusable apps

    1. First, create a parent directory for polls, outside of your Django project. Call this directory django-polls.

    2. Move the polls directory into the django-polls directory.

    3. Create a file django-polls/README.rst with the following contents

      # django-polls/README.rst
      =====
      Polls
      =====
      
      Polls is a simple Django app to conduct Web-based polls. For each
      question, visitors can choose between a fixed number of answers.
      
      Detailed documentation is in the "docs" directory.
      
      Quick start
      -----------
      
      1. Add "polls" to your INSTALLED_APPS setting like this::
      
          INSTALLED_APPS = [
              ...
              'polls',
          ]
      
      2. Include the polls URLconf in your project urls.py like this::
      
          path('polls/', include('polls.urls')),
      
      3. Run `python manage.py migrate` to create the polls models.
      
      4. Start the development server and visit http://127.0.0.1:8000/admin/
      to create a poll (you'll need the Admin app enabled).
      
      5. Visit http://127.0.0.1:8000/polls/ to participate in the poll.
      
    4. Create a django-polls/LICENSE file. Choosing a license is beyond the scope of this tutorial, but suffice it to say that code released publicly without a license is useless. Django and many Django-compatible apps are distributed under the BSD license; however, you’re free to pick your own license. Just be aware that your licensing choice will affect who is able to use your code.

    5. Next we’ll create a setup.py file which provides details about how to build and install the app. A full explanation of this file is beyond the scope of this tutorial, but the setuptools docs have a good explanation. Create a file django-polls/setup.py with the following contents:

      # django-polls/setup.py
      import os
      from setuptools import find_packages, setup
      
      with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:
          README = readme.read()
      
      # allow setup.py to be run from any path
      os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
      
      setup(
          name='django-polls',
          version='0.1',
          packages=find_packages(),
          include_package_data=True,
          license='BSD License',  # example license
          description='A simple Django app to conduct Web-based polls.',
          long_description=README,
          url='https://www.example.com/',
          author='Your Name',
          author_email='yourname@example.com',
          classifiers=[
              'Environment :: Web Environment',
              'Framework :: Django',
              'Framework :: Django :: X.Y',  # replace "X.Y" as appropriate
              'Intended Audience :: Developers',
              'License :: OSI Approved :: BSD License',  # example license
              'Operating System :: OS Independent',
              'Programming Language :: Python',
              'Programming Language :: Python :: 3.5',
              'Programming Language :: Python :: 3.6',
              'Topic :: Internet :: WWW/HTTP',
              'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
          ],
      )
      
    6. Only Python modules and packages are included in the package by default. To include additional files, we’ll need to create a MANIFEST.in file. The setuptools docs referred to in the previous step discuss this file in more details. To include the templates, the README.rst and our LICENSE file, create a file django-polls/MANIFEST.in with the following contents

      django-polls/MANIFEST.in
      include LICENSE
      include README.rst
      recursive-include polls/static *
      recursive-include polls/templates *
      
    7. It’s optional, but recommended, to include detailed documentation with your app. Create an empty directory django-polls/docs for future documentation. Add an additional line to django-polls/MANIFEST.in:

      recursive-include docs *
      
    8. Try building your package with python setup.py sdist (run from inside django-polls). This creates a directory called dist and builds your new package, django-polls-0.1.tar.gz.

    9. Using your own package

      $ pip install --user django-polls/dist/django-polls-0.1.tar.gz
      $ pip uninstall django-polls
      
    10. Publishing your app

    • Email the package to a friend.
    • Upload the package on your website.
    • Post the package on a public repository, such as the Python Package Index (PyPI). packaging.python.org has a good tutorial for doing this.

    相关文章

      网友评论

          本文标题:09 - Reusable apps

          本文链接:https://www.haomeiwen.com/subject/zvxigftx.html