若有一个已经运行稳定的程序,那么可以将其打包,供其他项目安装使用。

假设django项目的目录结构如下:

  1. mysite/
  2. manage.py
  3. mysite/
  4. __init__.py
  5. settings.py
  6. urls.py
  7. wsgi.py
  8. polls/
  9. __init__.py
  10. admin.py
  11. migrations/
  12. __init__.py
  13. 0001_initial.py
  14. models.py
  15. static/
  16. polls/
  17. images/
  18. background.gif
  19. style.css
  20. templates/
  21. polls/
  22. detail.html
  23. index.html
  24. results.html
  25. tests.py
  26. urls.py
  27. views.py
  28. templates/
  29. admin/
  30. base_site.html

想要把polls打包出去,首先将polls文件夹拷贝到一个新的目录下,如django-polls;

创建文件django-polls/README.rst,其内容如下:

  1. =====
  2. Polls
  3. =====
  4.  
  5. Polls is a simple Django app to conduct Web-based polls. For each
  6. question, visitors can choose between a fixed number of answers.
  7.  
  8. Detailed documentation is in the "docs" directory.
  9.  
  10. Quick start
  11. -----------
  12.  
  13. 1. Add "polls" to your INSTALLED_APPS setting like this::
  14.  
  15. INSTALLED_APPS = [
  16. ...
  17. 'polls',
  18. ]
  19.  
  20. 2. Include the polls URLconf in your project urls.py like this::
  21.  
  22. url(r'^polls/', include('polls.urls')),
  23.  
  24. 3. Run `python manage.py migrate` to create the polls models.
  25.  
  26. 4. Start the development server and visit http://127.0.0.1:8000/admin/
  27. to create a poll (you'll need the Admin app enabled).
  28.  
  29. 5. Visit http://127.0.0.1:8000/polls/ to participate in the poll.

创建了license文件,django-polls/LICENSE;

创建django-polls/setup.py文件,内容如下:

  1. import os
  2. from setuptools import find_packages, setup
  3.  
  4. with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:
  5. README = readme.read()
  6.  
  7. # allow setup.py to be run from any path
  8. os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
  9.  
  10. setup(
  11. name='django-polls',
  12. version='0.1',
  13. packages=find_packages(),
  14. include_package_data=True,
  15. license='BSD License', # example license
  16. description='A simple Django app to conduct Web-based polls.',
  17. long_description=README,
  18. url='https://www.example.com/',
  19. author='Your Name',
  20. author_email='yourname@example.com',
  21. classifiers=[
  22. 'Environment :: Web Environment',
  23. 'Framework :: Django',
  24. 'Framework :: Django :: X.Y', # replace "X.Y" as appropriate
  25. 'Intended Audience :: Developers',
  26. 'License :: OSI Approved :: BSD License', # example license
  27. 'Operating System :: OS Independent',
  28. 'Programming Language :: Python',
  29. # Replace these appropriately if you are stuck on Python 2.
  30. 'Programming Language :: Python :: 3',
  31. 'Programming Language :: Python :: 3.4',
  32. 'Programming Language :: Python :: 3.5',
  33. 'Topic :: Internet :: WWW/HTTP',
  34. 'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
  35. ],
  36. )

创建django-polls/MANIFEST.in文件,内容如下:

  1. include LICENSE
  2. include README.rst
  3. recursive-include polls/static *
  4. recursive-include polls/templates *

在目录django-polls下执行打包命令:python setup.py sdist,将会在目录sdist下产生压缩文件 django-polls-0.1.tar.gz.

使用时:

安装: pip install --user django-polls/dist/django-polls-0.1.tar.gz

卸载: pip uninstall django-polls

django 如何重用app的更多相关文章

  1. django 添加comments app

    django 添加comments app 参看 django comments 文档 安装和配置comments 1.安装comments,运行:pip install django-contrib ...

  2. django根据不同app配置相应的log文件

    django根据不同app配置相应的log文件 settings.py # django logging LOG_PATH = "/var/log/blog/" LOGGING = ...

  3. Django中的APP

    3. Django中的APP: 什么是APP?以及为什么要用APP? project --> 项目 (老男孩教育大学校) APP --> 应用 (Linux学院/Python学院/大数据学 ...

  4. Django~NewProject and APP

    New Project 1.新建 django-admin startproject mysite 2.运行 manage.py runserver 8080 New APP 1.manage.py ...

  5. Django 加载 app 中的urls

    在 blog app 下创建 urls.py, 定义该 app 下自有的 url : new/story from blog import views from django.conf import ...

  6. Django --- Django下载和APP创建 ORM (大概步骤)

    1,下载: 命令行: pip install django == 1.11.15 pip install -i或 源 django == 1.11.15 pycharm settings 解释器 点 ...

  7. Django:同一个app支持多个数据库

    我以我个人的Mynote工程说明,目的是要在backend这个app里面设置不同的model对应daysn和bear两个数据库进行操作 现在我们先简单对一个完全新建的django工程配置一个自动在my ...

  8. Django学习手册 - 创建Django工程项目以及APP

    前置步骤: 下载python,django 并且安装好 python 解释器以及django模块. 整体步骤阐述: 创建django工程项目 步骤一:进入安装的python目录 步骤二:输入创建工程的 ...

  9. django 数据库配置 ,APP 迁移.模型基础

    # 1.数据库的连接配置django 连接mysql的配置流程:- 安装 pymysql pip install pymysql- 创建数据库用户有创建数据库权限的用户- 创建数据库crm .进入数据 ...

随机推荐

  1. sql 2008常用语法语句收集

    EXEC sp_dropuser 'test' : 从当前数据库删除用户 test EXEC sp_droplogin 'test' : 从 SQL Server 中删除登录 test select ...

  2. node连接mysql数据库

    1. 创建项目,安装mysql 创建项目文件夹test, 在test文件夹下yarn add mysql --save安装mysql: 2. node使用mysql 在test文件夹下,创建test. ...

  3. git查看切换分支

    Git一般有很多分支,我们clone到本地的时候一般都是master分支,那么如何切换到其他分支呢?主要命令如下: 1. 查看远程分支 $ git branch -a 我在mxnet根目录下运行以上命 ...

  4. jquery动态修改带有important的样式方法

    $('.el-card').css("background", "#fff !important");(不起作用的) 改为: $('.el-card').css ...

  5. [CSP-S模拟测试]:Race(数学+Trie树)

    题目描述 一年一度的运动会开始了.有$N$个选手参赛,第$i$个选手有一个能力值(保证$A[i]$两两不同),比赛一共进行了天.在第$j$天($0\leqslant j\leqslant 2^{m-1 ...

  6. I2C总线协议详解

    I2C总线定义     I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线产生于在80年代,最初为音 ...

  7. jq与js获取值操作

    jq与js获取值操作 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  8. 判断是否是NaN

    if (isNaN(parseInt(x))) { alert("非数字"); } else{ alert("数字"); }

  9. 使用Bochs学习硬件原理

    什么是Bochs? 简单地说,Bochs是一款仿真软件,可以用软件的方式模拟硬件的工作.同类软件有Qemu,仿真软件与虚拟机(hypervisor)还不完全相同,仿真软件是完全软件模拟硬件,而虚拟机软 ...

  10. Series序列

    import pandas as pd '''Series序列:1.序列 的声明,指定index列标签2.查看列索引(index)和元素 (values)3.选择内部元素4.为元素赋值5.用Numpy ...