/ / Django project console management + Codificação em Eclipse - python, django, eclipse, pydev

Django project console management + Codificação no Eclipse - python, django, eclipse, pydev

Eu estou tentando montar meu primeiro projeto no Django da maneira mais confortável para mim.

Eu realmente gosto de usar console para tal coisa como:

  • Gerenciando algumas configurações do projeto (antes de executar por exemplo)
  • controle de versão
  • criando projeto a partir de um modelo

Eu sei que com o Django eu posso fazer isso com:

django-admin startproject, manage.py runserver e provavelmente ainda mais

Mas, para codificação, prefiro usar o Eclipse do que o console (vim: P).

Então, quero importar esse projeto já criado para o Eclipse.

Importar opção de projeto não reconhece a pasta do meu projeto como uma pasta válida para importação (provavelmente, porque não tem nenhum arquivo como .eclipse_project).

Eu posso fazer desta forma New-> Project-> selecione a pasta do meu projeto como o conteúdo que eu quero começar.

Isso realmente funciona, mas o que me incomodaé que eu não posso adicionar um único módulo PyDev a este projeto, porque não há pastas de origem, mesmo que eu tenha uma pasta com um módulo chamado __init__.py dentro. A estrutura do projeto depois de executar este movimento é a seguinte:

mysite
manage.py
/mysite                  <- considered by PyDev not as source folder
__init__.py
urls.py
settings.py
wsgi.py

Eu poderia criar pasta de origem na pasta raiz do projeto e, em seguida, mova o conteúdo de mysite / mysite para ele, mas:

  • Não quebro algo na estrutura do projeto Django?
  • Eu não quero fazer isso toda vez que eu criar um projeto de django?
  • Existe uma opção para alterar o tipo dessa pasta / mysite para a pasta de origem?

Estou fazendo algo errado?

Eu também tentei uma opção para criar o projeto Django usando:

New-> Django project-> Estou obtendo a mesma estrutura, que ou não tem pasta de origem

btw. qual é a estrutura do projeto do django recomendado?

Respostas:

1 para resposta № 1

Eu estou usando o Eclipse como meu ambiente de codificação do Django e você não precisa de uma pasta de origem. Apenas use a estrutura de pastas como ela é fornecida pelo Django. nisso.py mostra python que esta pasta é na verdade um módulo python.

O comando django-admin.py startproject myproject por padrão, criará um novo diretório"myproject" (= permite chamá-la de pasta do espaço de trabalho do projeto) que contém uma pasta manage.py e uma pasta do pacote de projeto (também chamada "myproject", contendo um arquivo settings.py e outros).

Você pode renomear a pasta do espaço de trabalho do projetovocê quer, isso não muda nada. Não renomeie o pacote do projeto (a menos que você saiba o que você faz), como o settings.py está fazendo referência a esta pasta ou exatamente, está fazendo referência a este módulo.

Tendo criado sua estrutura de pastas, acesse o Eclipse e crie um novo projeto selecionando a pasta do espaço de trabalho do projeto e você estará pronto.

Esta é uma configuração muito leve e você não podeexecute qualquer comando django do Eclipse desta forma. No entanto, eu recomendaria usar o terminal / console para executar comandos do Django, pois é muito útil.

Para que o Eclipse possa pular de um arquivo para outro, usando o comando "cmd + mouseclick" em um método ou similar, você deve incluir a pasta do espaço de trabalho do projeto no system PYTHONPATH no Eclipse. Apenas vá para Eclipse - Preferences - PyDev - Interpreter Python e adicione sua pasta através do botão New Folder. Veja a imagem abaixo:

insira a descrição da imagem aqui

Eu também posso recomendar o Django plugin de editor de texto para o Eclipse.


0 para resposta № 2

Se você não tem pasta de origem no Eclipse (porexemplo após a importação de um projeto existente), você pode clicar com o botão direito do mouse em seu projeto, escolher Propriedades, escolher PyDev - PYTHONPATH e depois adicionar a pasta de origem. Por exemplo, no seu caso, será pasta mysite.

Depois disso, você pode usar as opções do PyDev (PyDev Module, PyDev Package).