Django开发者群  - 讨论区

标题:请教Django共用app的问题

2010年08月24日 星期二 15:55

请教个问题,

为了项目共用app,建议的Django项目层级结构为:

Suggested Project layout

example.com/
   local_apps/
       custom apps written for this project (Preferably Reusable; Probably on your PYTHONPATH)
   external_apps/
        External reusable apps you are using on this project
        Note: These apps can also live anywhere on your PYTHONPATH
   projects/
       dev_example/
       production_example/
       django96_example/
           manage.py, settings, urls, etc
    docs/
       This will hold the documentation for your project
   static/
       -In production this will be the root of your MEDIA_URL
       css/
       js/
       images/
   tests/
       - Project level tests (Each app should also have tests)
   uploads/
       - content imgs, etc
   templates/
       - This area is used to override templates from your reusable apps
       flatpages/
       comments/
       example/
       app1/
       app2/

实际实践《Practical Django Project》时:

 

建立一个project(名为cms)之后,在cms同一个目录下(alongside cms not inside cms)手动创建了coltrane作为app(含models.py views.py admin.py),然后在cms的settings.py里INSTALL_APPS里加上'coltrane',python manage.py syncdb时提示不能找到coltrane模块,书上的解释好像跟Python的path有关,怎么解决?

也就是上面层级结构的externals_apps如何在Projects里面使用的问题。

本例结构:

/cms/ #cms是一个project

    __init__.py

    settings.py

    manage.py

    urls.py

/coltrane/ #coltrane是一个app

    __init__.py

    models.py

    views.py

    admin.py

2010年08月24日 星期二 17:01

问题已解决:

settings.py中前面加入了:

import sys
sys.path = [str(sys.path[0]) + "/../"] + sys.path

后面的INSTALLED_APPS = ( 'coltrane',)就可以直接使用了。

2010年08月24日 星期二 17:05

但有一个问题:假如有多个peoject 如何通用外部的app?总不能在每个project的settings.py下都加入上面的红色的代码吧?

也就是:

projects 如何通用external_apps?就是里面那个NOTE: These apps can also live anywhere on your PYTHONPATH 如何实现?

2010年08月25日 星期三 11:12

可以考虑外部app做成安装包,这样多个project就可以共用了。

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号