Каково различие между сайтом и приложением в Django?

Войдите в режим предварительного просмотра в GTM, это можно сделать через интерфейс GTM в верхнем правом углу:

GTM Preview Button

    [ 114]

    После активации перейдите на веб-сайт, на котором развернут контейнер GTM.

  • Выполните необходимые триггерные действия на сайте, и вы должны увидеть сводку всех запущенных тегов и разбивку тегов, запущенных для определенных событий:

[1110 ] GTM Debug Preview

Теперь просто следите за тегом Facebook в разделе «Теги, созданные на этой странице». Если он не отображается там, где должен быть, то проверьте, что ваш триггер GTM срабатывает соответствующим образом.

26
задан larf311 9 April 2009 в 13:35
поделиться

4 ответа

У Джанго на самом деле есть три понятия:

  • Проект (Я думаю, это то, что вы называете сайт): это каталог, который содержит все приложения. Они имеют общий вызов времени выполнения и могут ссылаться друг на друга.

  • Приложение : Это набор представлений, моделей и шаблонов. Приложения часто разрабатываются таким образом, чтобы их можно было подключить к другому проекту.

  • Сайт : Вы можете назначить другое поведение для приложения в зависимости от посещаемого сайта (например, URL). Таким образом, одно и то же «приложение» может настроить себя в зависимости от того, посетил ли пользователь «StackOverflow.com» или «RackOverflow.com» (или как там будет называться версия, ориентированная на ИТ), даже если это одна и та же кодовая база это обрабатывает запрос.

Как вы это устроите, действительно зависит от вашего проекта. В сложном случае вы можете сделать:

Project: StackOverflowProject
    App: Web Version
        Site: StackOverflow.com
        Site: RackOverflow.com
    App: XML API Version
        Site: StackOverflow.com
        Site: RackOverflow.com
    Common non-app settings, libraries, auth, etc

Или, для более простого проекта, который хочет использовать плагин с открытым исходным кодом:

Project: StackOverflowProject
    App: Stackoverflow
        (No specific use of the sites feature... it's just one site)
    App: Plug-in TinyMCE editor with image upload
        (No specific use of the sites feature)

Помимо того, что должен быть проект и, по крайней мере, одно приложение, расположение очень гибкое; однако вы можете адаптировать его так, как вам удобно, чтобы абстрагироваться и управлять сложностью (или простотой) развертывания.

25
ответ дан Jarret Hardie 28 November 2019 в 07:37
поделиться

From the Django documentation:

Projects vs. apps

What’s the difference between a project and an app? An app is a Web application that does something — e.g., a weblog system, a database of public records or a simple poll app. A project is a collection of configuration and apps for a particular Web site. A project can contain multiple apps. An app can be in multiple projects.

From this link:

Projects versus applications

This is really more of a separate (though related) question, but understanding the distinction Django draws between a “project” and an “application” is a big part of good code layout. Roughly speaking, this is what the two terms mean:

  • An application tries to provide a single, relatively self-contained set of related functions. An application is allowed to define a set of models (though it doesn’t have to) and to define and register custom template tags and filters (though, again, it doesn’t have to).

  • A project is a collection of applications, installed into the same database, and all using the same settings file. In a sense, the defining aspect of a project is that it supplies a settings file which specifies the database to use, the applications to install, and other bits of configuration. A project may correspond to a single web site, but doesn’t have to — multiple projects can run on the same site. The project is also responsible for the root URL configuration, though in most cases it’s useful to just have that consist of calls to include which pull in URL configurations from inidividual applications.

Views, custom manipulators, custom context processors and most other things Django lets you create can all be defined either at the level of the project or of the application, and where you do that should depend on what’s most effective for you; in general, though, they’re best placed inside an application (this increases their portability across projects).

8
ответ дан Paolo Bergantino 28 November 2019 в 07:37
поделиться

Как вы сказали, у вас будет сайт StackOverflow с приложением аутентификации, приложением вопросов и т. Д.

Вам следует взглянуть на проект Pinax , чтобы увидеть, как они раскладывают вещи. Это один из лучших способов сделать это, поскольку он увеличит модульность и мобильность ваших приложений.

0
ответ дан Alex Jillard 28 November 2019 в 07:37
поделиться

Ответ на вопрос, есть ли у вас проект с одним приложением под названием StackOverflow - однозначный отказ. На таком сайте может быть более 20 приложений.

См. Видео-презентацию Джеймса Беннета « DjangoCon 2008: Reusable Apps », которая прекрасно это объясняет.

2
ответ дан 28 November 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: