django project app
A área de trabalho de um projeto Django é dividida em partes menores. Ao menos duas partes são bem distintas: projeto e aplicativos.
Um projeto é um conjunto de configurações (como URLs, conexões com banco de dados etc) e aplicativos que são usados em uma instância do Django. Todo projeto deve ser versionado em um repositório de código, como o git.
Um aplicativo é um conjunto de funcionalidades correlacionadas, implementadas por models, templates, views e forms. Aplicativos devem ser modulares e reutilizáveis; portanto também devem ser versionados em repositórios. Diversos aplicativos de terceiros estão disponíveis, trazendo funcionalidaeds prontas.
Por exemplo, o projeto de um site pessoal pode ter um aplicativo de blog posts, outro aplicativo de chat interativo e também um aplicativo de autenticação externa.
Primeiro, inicialize um repositório com o git:
(venv)$ git init repositorio
Então crie um projeto dentro dele com django-admin:
(venv)$ django-admin startproject projeto repositorio
Adicione o início do projeto no repositório:
(venv)$ cd repositorio (venv)$ echo '*.pyc' >>.gitignore (venv)$ git add . (venv)$ git commit -m 'inicio do projeto'
No diretório do repositório do projeto, crie um aplicativo:
(venv)$ ./manage.py startapp app
É desejável que esse aplicativo também seja versionado. Ele pode ser mantido no repositório do projeto ou em um repositório próprio (através de um submódulo do git, por exemplo) quando ele for usado por outros projetos.
Neste momento devem haver ao menos quatro diretórios importantes criados pelos últimos passos:
- venv
- ambiente virtual com os pacotes instalados do PyPI
- repositorio
- repositório de versionamento do projeto e de todas as suas dependências
- projeto
- configurações do projeto, necessárias para desenvolvimento e produção
- app
- aplicativo que implementa uma funcionalidade e é possivelmente versionado em repositório independente do projeto
venv ├── bin/ ├── include/ ├── lib/ ├── lib64 -> lib/ └── pyvenv.cfg repositorio ├── .git/ ├── manage.py* └── projeto/ ├── __init__.py ├── asgi.py ├── settings.py ├── urls.py ├── wsgi.py └── app/ ├── __init__.py ├── admin.py ├── apps.py ├── migrations/ │ └── __init__.py ├── models.py ├── tests.py └── views.py
Obs.: O django-admin startproject
pode criar o diretório do repositório, se
não fornecermos o último parâmetro. Mas ele terá o mesmo nome do projeto e não
será versionado.