Django3-打包自己的应用程序

362 阅读1分钟

大家好,我是言淦,我今天带来的文章是《Django3-打包自己的应用程序》,希望能给你们带来帮助!

环境: Django 2.2.1 + Python 3.6.7

"不要重复造轮子"算是编程界的一条原则,所以当我们撸出了很多应用的时候,应用的复用是我们值得关注的问题。

创建一个需要复用的应用

$ django-admin startproject myproject

$ python manage.py startapp my_app

加上点功能(方便验证)

# my_app/views.py
from django.http import HttpResponse

def app_index(request):
    return HttpResponse("Hello World")


# myproject/urls.py
from my_app import views

urlpatterns = [
    # 这个去掉,因为可能会与新项目的admin冲突
    # path('admin/', admin.site.urls),
    path('my_app/', views.app_index)
]

# myproject/settings.py
INSTALLED_APPS = [
    ...
    'my_app'
]

# 启动, 浏览器打开http://127.0.0.1:8000/my_app/便可看到”Hello World“

打包我们的应用(my_app)

此处可参考官方文档: docs.djangoproject.com/zh-hans/2.2… 大致步骤如下:

1.拷贝myapp目录到一个另外的目录 注意新版本的Dj创建应用时(my_app)时并不会创建urls.py文件, 所以需要将上述的myproject/urls.py复制一份放到my_app文件夹,这样引用的时候就不会出错(path('my_app/', include('my_app.urls'))), 如果缺失此文件,会报”ModuleNotFoundError: No module named 'my_app.urls'“的错误提示。

2.编写文档中提到的各种文件

3.选择一个开源协议: choosealicense.com

4.定义你的包名: setup.py的 name 设置项 包名只是pip安装的时候使用,实际引用的时候还是my_app

5.访问的时候是 http://127.0.0.1:8000/my_app/my_app/, 不是http://127.0.0.1:8000/my_app

6.Python程序的打包:packaging.python.org/tutorials/p…