美文网首页
项目中app的重复使用

项目中app的重复使用

作者: wangfp | 来源:发表于2017-09-17 21:26 被阅读0次

Django中的一个app应用,实际上就是相当于一个包

最好将一个应用的相关文件(包括模板、静态文件)放在一起,以便用于其它的项目

Django中将app以包(package)的形式重复利用

  • 打包app

    1. 创建新的目录(如django-polls)以存放app(注意该目录名不应该同其它package名相同)
    2. 将polls文件拷入django-polls文件中
    3. 在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::
    
        url(r'^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.
    
    1. 创建LICENSE文件(许可文件)
    2. 创建安装文件setup.py(setuptools文档
    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',
            # Replace these appropriately if you are stuck on Python 2.
            'Programming Language :: Python :: 3',
            'Programming Language :: Python :: 3.4',
            'Programming Language :: Python :: 3.5',
            'Topic :: Internet :: WWW/HTTP',
            'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
        ],
    )
    
    1. 创建MANIFEST.in文件
      默认情况下,将创建的包中只会包含与python相关的模块和包,为了将一些其它文件(如templates/、README.rst、LICENSE)也包含进新创建的包中,需要在MANIFEST.in文件中进行指定
    include LICENSE
    include README.rst
    recursive-include polls/static *
    recursive-include polls/templates *
    
    1. (可选)在新创建的app中包含细节描述文件
      创建docs文件夹,并在MANIFEST.in文件中添加一句
    recursive-inclued docs *
    
    1. 创建包
      在命令提示符中输入
    > python setup.py sdist
    

    创建的包位于新建的dist文件夹中,名称为django-polls-0.1.tar.gz

  • 使用应用包

    1. 安装该app包(最好在虚拟环境下)
    pip install --user django-polls/dist/django-polls-0.1.tar.gz
    # 注意是自己的相对路径
    
    1. 现在就可以使用该app了(可以删去原项目中的polls文件了)
    2. 卸载包
    pip uninstall django-polls
    

相关文章

网友评论

      本文标题:项目中app的重复使用

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