2016-08-28 2 views
0

다른 부동산 회사의 사이트를 여러 개 개발하려고합니다. 모두 동일한 HTML, 섹션 등을 공유합니다. 차이점은 내용, 특히 속성 ... 그러나 일부 속성은 나머지 회사간에 공유 할 수 있습니다.Django 공유 데이터베이스가있는 다중 사이트

나는 동일한 데이터베이스를 공유하고 URL을 사용하여 콘텐츠를 차별화하려고합니다. 이 방법으로 각 회사마다 하나씩 프로젝트를 사용할 수 있습니다.

누구나 이런 종류의 프로젝트에 대한 권장 사항이 있습니까?

고마워,

+1

현실 세계에있는 경우 데이터를 누출하지 못하게하는 "코드 규칙"만으로 회사 전체에서 데이터베이스를 공유하는 것이 좋습니다. 당신은 그런 종류의 책임을 정말로 원하지 않습니다.이러한 사이트 중 하나가 무엇인지 정의하는 단일 "프로젝트"를 절대적으로 구축 할 수 있습니다. 각 프로젝트마다 하나씩, 클라이언트마다 하나씩 스핀 업하십시오. – aruisdante

답변

0

나는 그것을했다.
좋은 아이디어였습니까? 네, 제 경우에는 그렇습니다. 동일한 콘텐츠를 다시 사용해야했으며 콘텐츠를 변경했을 때 모든 페이지에서 콘텐츠를 변경해야했습니다. 간단한 사이트에서 세 가지 다른 프로젝트에서 세 가지 배포 및 내용을 변경하는 것은 과도한 일입니다. 하지만 간단한 프론트 엔드 페이지 (Django는 거의 필요하지 않음)에서 정상적으로 작동하지만 "실제"웹 응용 프로그램에는 권장하지 않습니다.

무엇이 중단 되나요? 귀하의 페이지가 공유하고 문제가 있는지 확인하십시오.

1) 분명히없는 다른 회사에 동일한 사용자를 사용할 수 있다면 (관리자 로그인 외에) 페이지에 사용자 로그인 기능을 갖고 싶다면 문제가있는 것 같습니다. 무엇이든 연결. 회사가 사용자 개인 정보가 사적인만큼 개인 정보가 아니라는 사실을 알게되면 많은 문제가 발생할 수 있습니다. 그리고 한 번도 방문한 적이없는 페이지의 사용자 계정으로 어떻게 끝나게되었는지 실마리가없는 사용자에게도 마찬가지입니다.

2) URL. 별도의 해킹없이 각 회사마다 다른 제품을 가질 수는 없습니다. 회사 중 하나가 /about/을 갖고 다른 하나가 /company/ 페이지를 원한다면 회사가 다음 페이지를 요청할 때 얼굴을 터뜨릴 수있는 해로운 솔루션을 해킹하기 시작할 것입니다.

3) 하드 코드 된 데이터 또는 데이터베이스 값에 연결된 페이지에 넣고 싶은 항목이 있는지 확인하십시오. 나는. 소셜 인증 등

당신은 어떻게 할 수 있습니까?

내가 첫 번째 해결에 헬 바운드 된 경우

, 여기에 내가 무엇을 할 것이라고입니다 :
- 각 페이지
에 대한 사용자 모델에 대한 사용자 지정 관리자 만들기 - - 사용자 모델을 무시하고 등록 페이지
에 대한 정보를 추가 쓰기 현재 요청에 대해서만 페이지 별 관리자를 사용할 수있는 미들웨어
나는 백만 년 만에 그것을하지 않을 것입니다. 너무 해커 롭고 너무 취약합니다. 그냥 별도의 데이터베이스를 만듭니다.

두 번째 해결 방법은 요청을 보낸 도메인을 확인하고 올바른 URL 구성을 반환하는 다중 호스트 미들웨어를 생성하는 것입니다. Sth는 this과 유사합니다. 필요에 맞게 다시 작성하고 수정할 수 있습니다.

당신을 위해 결정하는 것은 불가능하지만, 나는 한 가지 방법이나 다른 방법으로 가기 전에 생각할 것을 당신에게주었습니다. 행운을 빕니다!

관련 문제