2012-03-15 3 views
4

장고 세계에서 초보자인데 "정보 사이트"(복잡하지 않음)를 개발했지만 이번 주에는 내 상사가 큰 소프트웨어를 이주하도록 명령합니다. 그 모듈은 7 개입니다.초보자 장고 : 하나 또는 여러 개의 응용 프로그램으로 프로젝트 만들기

그래서 문서 페이지를 읽고 Google에서 장고를 사용하여이 소프트웨어를 어떻게 디자인 할 수 있는지 검색했습니다. 모든 "모듈"은 "앱"으로 명명 될 수 있으므로 모든 모듈에 대해 새 프로젝트와 하나의 응용 프로그램을 만듭니다. 모듈이 공개되지 않기 때문에 제대로 된 것인지 알 수 없습니다.

문제는 이제 다음 단계가 무엇인지 모릅니다.

내 모든 앱은 데이터를 공유 할 수 있습니다. 모든 앱에는 모델이 있지만 한 앱에는 다른 앱의 모델과 관련된 모델이 있습니다.

어디서 로그인 프로세스를위한 코드를 작성합니까? (현재 사용자 또는 새 사용자의 등록, 편집, 공유 및 유효성 검사를 처리하는 것으로 생각되는 manageUsers 응용 프로그램을 만듭니다)이 세션을 공유 할 수 있습니다 데이터가 앱에 걸쳐 있습니까?

웹 사이트 정보 (연락처, 가격, 가격 ... 등)를 추가하는 데 필요한 앱이 하나 더 필요합니까? Python 2.7, Django 1.3, Memcached 및 MySQL 5를 사용합니다.

대부분이 하나의 응용 프로그램 만 사용하여 개발하는 방법을 설명하고 아무런 답이 없기 때문에 누군가가 나를 도울 수 있거나이 질문을 명확히 할 수있는 곳을 말해줍니다. 하나의 앱에 모든 코드를 작성해야합니까?

최고 감사합니다.

+0

안녕하세요 django와 나머지 부분의 "접촉"을 가진 유일한 사람은 현재 버전 (PHP 및 Perl)을 계속 유지합니다. 베타 버전을 사용하고 있기 때문에 몇 명의 개발자를 통해 나를 도와 줄 수 있습니다. 문제는 많은 앱을 사용하여 개발을 시작하기위한 안내서 나 예제를 찾을 수 없기 때문에 시작해야하는 부분입니다. – rcsolis

+0

확실히 대답에 링크 된 Django Book (version 2.0)을보십시오. 1 장부터 10 장까지 순차적으로 읽으면 볼을 굴릴만큼 충분히 걷게 될 것입니다. –

+0

웹을 활용하면 잘하고 있습니다. 그러나 사무실에 있다면 연구를 "일"이라고 생각하는 것이 훨씬 어렵습니다. 나중에는 시간을 많이 절약 할 수 있습니다. 도움이 필요하면 베타 테스트를 위해 열어주십시오. – Droogans

답변

10

시작하기 좋은 곳 (날짜는 있지만 읽을만한 가치가 있습니다. 사용자 댓글 거품도보십시오) : http://www.djangobook.com/en/2.0/. 1 ~ 10 장은 필수 독서입니다. 원하는 경우 나머지 장을 읽고 선택할 수 있습니다.

예, 모든 장고 앱은 서로 데이터를 공유 할 수 있습니다. 하나의 Django Project 아래에 여러 개의 Django 응용 프로그램을 만듭니다. 프로젝트는 사용할 공통 데이터베이스를 설정하고 각 응용 프로그램은 해당 데이터베이스를 사용하는 모델을 만듭니다. App1은 App2와, App2는 App2와 통신 할 수 있습니다.

Django Project (one) <----->> (many) Django Application 

일반적으로 공통 기능을 기반으로 Apps를 분리합니다. 사용자 계정에 자체 앱이 있습니다 (아래 Auth 참조). 블로그 게시물은 다른 블로그 게시물을 가져옵니다. Google지도 인터페이스에서 다른 인터페이스를 얻을 수 있습니다. 사용자 가입.

사용자 계정과 로그인의 경우 Django는 Auth Module을 제공합니다. 장고에 직접 저장된 사용자 계정을 가질 수도 있고, Active Directory와 같은 다른 계정과 대화하도록 설정할 수도 있습니다. 내가 개인적으로 사용자 이름으로 255 자의 이메일 주소를 허용하기 위해 개인적으로 맞춤 설정했지만 (기본적으로 40 자로 제한됩니다) Auth는 "꽤 좋은"상태로 작동합니다.Django 책의 Chapter 14은 공식 Auth 문서보다 읽기가 쉽습니다. Auth를 사용한다면 Auth는 이미 하나이기 때문에 Django 애플리케이션을 만들 필요가 없습니다! 당신은 단지 settings.py에 설치하고 당신은 황금색이다.

장고 구조는 것 같이 보일 것입니다 :

/Project/ 
    __init__.py 
    manage.py 
    settings.py 
    urls.py 

    App1/ 
    __init__.py 
    forms.py 
    models.py 
    views.py 
    templates/App1/ 
     template1.html 
     template2.html 

    App2/ 
    ... 
앱 2 수행하여 앱 1의 데이터 모델에 액세스 할 수 있습니다

: 난 때문에, 내 사무실에서이 프로젝트를 from Project.App1.models import someModel

+0

+1'auth'에 대해서도, openID에 대한 옵션과 좋은 패키지 관리자와 함께 메일을 보낼 수있는 특정 종류의 이메일에 대한 옵션이 있습니다. 어쩌면 페이스 북이나 google + 용이 있을까요? – Droogans

+0

좋아요. App1의 Auth 모듈을 사용하여 로그인 및 등록을 만든 다음 App1에 로그온하면 App2가 데이터를 사용할 수 있다고 가정합니다. 장고 책을 주셔서 감사합니다.) +1000 – rcsolis

+0

Auth 자체는 앱입니다. settings.py에 Auth를 설치 한 후에는 일반적으로 login_required() 데코레이터를 적용하여 사용자가 로그인하여 액세스하려는 기능을 봅니다. login_required()는 "모든"응용 프로그램의 "모든"보기 기능에서 사용될 수 있습니다. 사용자가 로그인하고 로그인하지 않은 경우 login_required()는 로그인 페이지로 리디렉션합니다. 로그인하면 뷰 기능으로 리다이렉트됩니다. 선택 사항으로, 사용자 계정에 사용자 정의 데이터를 적용 할 수있는 인증 (Auth) 사용자에게 "프로필"을 첨부 할 수 있습니다 (https://docs.djangoproject.com/en/1.3/topics/auth/#storing-additional-information- about-users) –

2

나를 위해 규칙이 간단합니다. 다른 하나 개의 프로젝트에서 일부 코드를 복사하여 붙여 넣기해야하는 경우

  1. 는 -에 대한 응용 프로그램을 만들어 그것을 응용 프로그램의 모듈 코드 중 하나가 및/또는 하드 유지하기 위해보다 더 큰 1K 라인의 경우
  2. - 뭔가를 찾아 상호 들어

그들 사이에 가교 최소화하기 위해 응용 프로그램에 별도의 응용 프로그램에

  • 그룹 기능을 이동 당신이 사용할 수있는 signalssessions

  • 관련 문제