Desarrollo web en Windows 10, con Python, Django, PostgreSQL y LiClipse (English subtitles)

다시 한번 안녕하세요 제 이름은 Frank Mascarell이며 이전 비디오에서는 VPS에서 프로덕션 환경을 설정했습니다 또는 Linux 운영 체제가있는 개인 가상 서버 이 비디오에서는 Windows 10에서 동일한 환경을 구성합니다

개발 목적으로 우리는 이미 몇 가지 도구를 설치했습니다 이전 비디오에서 설명한 PuTTY 및 WinSCP와 같은 파이썬 설치부터 시작하겠습니다 이 프로젝트를 위해서는 계정을 사용해야합니다 모든 관리자 권한이있는 Windows 공식 Python 웹 사이트에서 최신 버전을 다운로드합니다 올바른 프로세서 유형을 선택하는 오늘은 3

73입니다 내 경우에는 x64입니다 어떤 것이 있는지 잘 모르겠다면 제어판> 시스템 및 보안> 시스템에서 볼 수 있습니다 관리자로서 실행 파일을 시작하고 설치가 시작됩니다

상자를 체크하여 파이썬 실행 파일의 경로를 추가합니다 PATH 환경 변수에서 이런 식으로 모든 폴더의 명령 콘솔에서 Python을 실행할 수 있습니다 기본적으로 Windows는 260자를 제한합니다 전체 경로를 포함한 최대 파일 이름 길이 여기를 클릭하여이 제한을 제거하십시오 그런 다음 데스크톱에 Python Shell 링크를 만들고 우리는 그것을 더 잘 갖기 위해 모든 것이 잘 진행되고 있는지 확인합니다 그리고 이것은 파이썬과 관련이 있습니다

PostgreSQL을 다운로드하여 관리자 계정으로 설치합니다 Stack Builder를 설치하는 옵션을 비활성화합니다 우리는 그것을 필요로하지 않기 때문입니다 이 응용 프로그램은 postgres를 확장하는 패키지 관리자입니다 그런 다음 Postgres Shell을 열고 postgres라는 샘플 데이터베이스에 연결할 수 있는지 확인합니다 설치를 만든 이런 경고를 우리에게 보여 주면 문자 유형이 일치하지 않음을 나타냅니다 Windows가 설치된 postgres 콘솔의 이 줄을 runpsql

bat 파일에 추가해야합니다 이제 PgAdmin을 입력하고 처음으로 마스터 비밀번호를 요청합니다 우리는 이미 연결되어 있으며 탐색 패널에서 BD postgres를 볼 수 있습니다 이제 슈퍼 유저 권한으로 다른 postgres 역할을 만들 수 있습니다 cmd에서 postgres 명령을 사용하려면 실행 파일의 경로를 추가해야합니다 PATH 환경 변수에서 Windows에서 로그 아웃 또는 다시 시작 새 경로로 변수를 다시로드하십시오

파이썬에서했던 것처럼 이것은 설치 옵션을 제공하지만 개발 환경에서는 postgres가 항상 실행되고있을 필요는 없습니다 장비 자원 소비 Windows 서비스가 실행 중이고 8 ​​개의 프로세스가 있습니다 postgres 서버를 시작하는 것이 좋습니다 우리가 그와 함께 일하고 그만 멈출 때만 이전 버전의 postgres에서는 박쥐 파일이 포함되었습니다 한 번의 클릭으로 서버를 시작하고 중지 할 수 있습니다 하지만이 버전에서는 그래서 우리는 그들 스스로 준비 할 것입니다

매우 쉽습니다 항상 그렇듯이 관리 계정에서 탐색기를 열고이 postgres 설치 폴더로갑니다 Startbat와 같은 이름을 가진 파일을 만듭니다 이 코드 줄로

NET 명령을 사용하여 서비스를 시작하고 중지합니다 우리는 바탕 화면에 바로 가기를 만들고 아이콘을 변경하고 짜잔 다 같은 방법으로 다른 박쥐를 만들어 cmd를 시작할 수 있습니다 postgres API에 필요한 환경 변수를로드합니다 명령을보다 편안하게 사용할 수 있습니다

이러한 변수는 이 특정 창에만 유용합니다 일단 닫히면 변수가 파괴됩니다 예를 들어, PGDATA 변수는 경로를 포함합니다 postgres 데이터가 저장되는 위치 이 변수는 대부분의 pg_ctl 명령에 필요합니다 무엇보다도, 우리는 확인할 수 있습니다 status 명령으로 서버의 상태 서버를 제어하는 ​​더 유용한 기능

아래에는 pg_ctl 문서에 대한 링크가 있습니다 서버가 Windows에서 자동으로 시작되므로 수동으로 바꾸어도 Windows 시작 프로그램에 Stopbat 실행 파일을 포함시키는 것이 좋습니다 이를 위해이 폴더로 이동하여 데스크탑 아이콘을 복사하여 붙여 넣습니다 Windows를 다시 시작하고 작동 방식을 확인할 수 있습니다

서비스를 비활성화하지 않는 것이 좋습니다 Startbat 실행 파일로 서버를 시작할 수 없기 때문에 다시 활성화해야합니다 이것은 필요의 문제입니다 postgres의 용도에 따라 다릅니다

가상 환경 준비를 시작하겠습니다 최신 버전의 Python을 설치 한 후 이들은 전 세계적으로 Windows에 설치된 기본 패키지입니다 업데이트가 누락 된 pip가 포함되었습니다 다음으로 virtualenvwrapper-win을 설치합니다 가상 환경을 관리합니다 이 버전은 virtualenvwrapper를 확장합니다 (virtualenv를 확장합니다) Windows 용 새 스크립트가 있습니다

아래에서 문서 링크를 떠납니다 또한 전체 시스템에 대해 pip-review를 설치합니다 패키지를 쉽게 업데이트 할 수 있습니다 이 시점에서 저는 중요한 설명을하고 싶습니다 –local 옵션없이 시스템에서 pip-review로 업데이트 할 때 그것이 할 일은 시스템 패키지를 업데이트하는 것입니다 기존의 모든 가상 환경

경우에 따라 유용 할 수 있습니다 그러나 더 많이 사용할수록 가상 환경 내에 있습니다 이제 mkvirtualenv 명령으로 가상 환경을 만듭니다 새로운 개발 환경의 이름 이를 생성 한 다음 활성화합니다 우리는 이미 환경 내에 있음을 나타냅니다

일부 도구가 자동으로 설치되었습니다 deactivate 명령으로 비활성화 할 수 있습니다 workon 명령 및 환경 이름으로 다시 활성화하십시오 가상 환경을 만들 때 –python 옵션을 표시하지 않으면 시스템에 설치 한 최신 버전을 설치합니다 Windows에 여러 버전의 Python을 설치할 수 있으므로 mkvirtualenv 명령으로 특정 버전의 Python으로 이미 작성된 경우 시스템에 이미 설치된 버전입니다

우리가 설치할 첫 번째 패키지는 pip-review입니다 활성화 된 환경에서 pip-review를 실행하면 로컬 옵션을 표시 할 필요는 없습니다 이 격리 된 환경의 패키지 만 업데이트합니다 두 번째 패키지는 Django의 최신 버전입니다 현재 2

22 django-admin –version 응용 프로그램을 실행하여 설치를 확인합니다 환경이 활성화되면 장고 프로젝트를 만드는 것이 매우 쉽습니다 django-admin startproject projectname 명령을 사용하십시오

그런 다음 새 폴더를 입력하여 managepy 파일에 액세스하십시오 python managepy runserver 명령으로 django 테스트 서버를 시작하십시오 이 서버는 로컬 호스트 모드에서 포트 8000에서 시작합니다

또는 로컬 주소 127001과 동일한 것입니다 서버를 중지하려면 중단 (Ctrl + C)을 사용하십시오

우리는 두 개의 패키지를 더 설치할 것이다 : 장고가 postgres에 연결할 수 있도록 psycopg2 정적 파일을 독립적으로 처리하는 whitenoise 개발 단계에서는 화이트 노이즈가 필요하지 않지만 장고 테스트 서버는 정적 파일을 자체 방식으로 처리하므로 그것으로 테스트를 수행하는 것이 편리합니다 프로덕션 환경의 서버에서 환경을 유지할 수 있기 때문에 이러한 방식이 될 것입니다 프로젝트를 구성하는 두 가지 방법을 설명하겠습니다 화이트 노이즈를 사용하지 않는 개발 형태 정적 파일을 처리하는 whitenoise와 함께 생산 방식

BooksWeb 테스트 프로젝트를 다운로드하여 시도해 보겠습니다 이전 비디오에서 사용한 VPS에 프로덕션 환경에서 작동하도록 설정되어 있습니다 사본을 어디서나 저장할 수 있습니다 프로젝트가 특정 폴더에있을 필요는 없습니다 첫 번째는 PgAdmin의 postgres에 BooksWeb 데이터베이스를 만드는 것입니다

프로젝트의 settingspy 파일입니다 화이트 노이즈를 사용하지 않고 구성하려면 일부 줄을 수정해야합니다 첫 번째는 SECRET_KEY 변수의로드에 대해 언급하는 것입니다 환경 변수에 저장되어 있지 않기 때문에 비밀 키를 직접 할당합니다 DEBUG 변수를 활성화하고 오류 발생시 메시지를 표시합니다

MIDDLEWARE 변수도 수정합니다 우리는 whitenoise가 통합 된 라인에 대해 언급합니다 매개 변수에 따라 DATABASES 변수를 조정합니다 방금 만든 테스트를 위해 로컬 BD에서 그것이 지금 연결될 곳입니다 서버 데이터베이스가 아니라 다르게 구성합니다 마지막으로,이 두 변수는 정적 파일 용으로 남겨두고 whitenoise에 대한 STATICFILES_DIRS 변수의로드에 대해 설명하십시오 whitenoise 버전 4

0부터 settingspy 파일에서 프로젝트를 구성해야합니다 wsgipy 파일에서 whitenoise에 대한 참조를 삭제하십시오 이 줄에 주석을 달거나 삭제합니다 이것들은 모두 필요한 구성 변경입니다 정적 파일을 사용하여 화이트 노이즈없이 작업 그리고 django 테스트 서버와 로컬로

잊지 말아야 할 또 다른 중요한 단계는 프로젝트 모델을 로컬 postgres BD로 마이그레이션하는 것입니다 django가 프로젝트의 BD 구조를 올바르게 작성합니다 그리고 makemigrations 및 migrate 명령으로이 작업을 수행합니다 그는 자신이 변화를 감지하지 못했다고 말하고 있습니다 이전에 마이그레이션을 수행했기 때문입니다

이제 테스트 서버를 시작하고 브라우저에서 결과를 확인하십시오 정적 파일이 제대로로드되었는지 확인할 수 있습니다 브라우저에서 오류가 발생하지 않습니다 페이지 스타일도 적용됩니다 정적 파일 인 CSS 스타일 시트를 통해 아직 기록은 없지만 postgres의 BD 구조는 PgAdmin에서 볼 수 있듯이 작성 및 준비됩니다 그런 다음 프로젝트를 구성하여 정적 파일에 whitenoise 서버를 사용하십시오

이전에 변경 한 줄을 주석 해제하십시오 –nostatic 매개 변수를 사용하여 테스트 서버를 시작합니다 장고 테스트 서버에 알리기 위해 정적 파일 관리를 중지하고 이제 whitenoise는 새로운 settingspy 설정에 따라이를 수행합니다 이렇게 변경하면 정적 파일과 관련된 브라우저 캐시를 비워야합니다 또는 반대로 페이지가 캐시에 저장된 오래된 파일과 함께 페이지를 잘못 표시하거나 오류로 표시합니다

이런 식으로 캐시를 재생성합니다 정적 파일 알고리즘이 변경 될 때마다 django가 생성 한 페이지를 확인할 수 있습니다 잘 작동하고 오류가 발생하지 않습니다 이제 whitenoise는 개발 모드에서 정적 파일을 제공하고 있습니다 VPS의 프로덕션 모드에서와 동일합니다 비어있는 __init__py 파일을 추가하여 시작해 보겠습니다 ( settings

py 파일이있는 위치 이것은 파이썬 에게이 폴더를 알려줍니다 모든 내용을 담은 패키지로 취급 할 수 있습니다 지금 만들 새 파일을 가져올 수 있습니다 먼저 settingspy 사본을 만듭니다

이름을 basepy로 바꿉니다 그런 다음 developmentpy 및 produccionpy 파일을 만듭니다

이제 우리는 수정 될 변수를 제거했습니다 STATIC_URL 변수는 일반적이기 때문에 그대로 두겠습니다 개발 및 생산 모드 개발 구성 파일에서 기본 모듈을 가져 와서 그대로 둡니다 생산 파일에서 우리는 whitenoise를 추가합니다 그리고 당신이 일 해야하는 변수

이제 우리는 어떻게 활성화 할 것인지 알아야합니다 개발 방식 또는 생산 방식 managepy 파일을보십시오 프로젝트를 시작한 첫 번째입니다 그것은 설정하는 기능을 포함 DJANGO_SETTINGS_MODULE 환경 변수 프로젝트 시작시 존재하지 않는 경우 settings

py 파일의 기본값을 할당합니다 이것이 우리가 할당해야 할 변수입니다 django 서버를 시작하기 전에 Windows에서는 SET 명령을 사용하여 변수를 할당합니다 생산 모드로 전환 할 때 브라우저 캐시를 지우는 것이 중요합니다 또한 문제없이 작동한다는 것을 알았습니다

이제 두 가지 구성이 준비되었습니다 하나의 변수 만 할당하면 쉽게 교환 할 수 있습니다 장고의 다음 버전이 나오면 새 버전으로 환경을 만들 수 있습니다 VPS에서 최종 변경을 수행하기 전에 로컬에서 테스트 웹 사이트 충돌의 위험없이 새 버전의 오작동으로 인해 가상 환경을 테스트하려면 다른 버전의 django로이 프로젝트를 시도해 볼 수 있습니다 예를 들어 2

0입니다 새로운 환경을 만들고 필요한 패키지를 설치합니다 따라서 우리는 우리의 프로젝트가 Django 버전 20에서도 작동합니다 실용? 개인적인 용도로 작은 응용 프로그램을 만들 겠다는 이점을 활용하면서 django의 모델, 뷰 및 템플릿을 신속하게 검토합니다

쓰레기로 가득 찬 보관실이 있기 때문에 그리고 나는 대다수를 팔고 싶다 두 개의 테이블이있는 작은 데이터베이스를 작성합니다 책을 담을 책, 다른 기사와 다른 또한 데이터베이스를 관리하기위한 사용자 지정 관리 페이지를 만듭니다 첫 번째는 비어 있고 구조화되지 않은 데이터베이스를 만드는 것입니다

로컬 연결로 PgAdmin에서 그런 다음이 연결의 속성을 수정합니다 기본적으로 BD 저장소에 연결하려면 Frank_local 연결과 연결할 때 서버를 테스트하고 연결을 끊었다가 다시 연결합니다 이제 django로 돌아가서 프로젝트와 응용 프로그램을 만듭니다 설정 파일을 조정합니다

우리는 응용 프로그램을 등록 화이트 노이즈를 사용하여 개발 모드를 구성합니다 postgres에 대한 연결 구성 정적 파일을위한 정적 폴더를 만듭니다 그런 다음 필요한 URL을 매핑합니다 브라우저에서 URL 카탈로그 /를 입력하면 catalogo

urls 파일로 리디렉션됩니다 이 애플리케이션의 URL이 맵핑되는 위치입니다 빈 URL을 입력하면 URL 카탈로그 /로 리디렉션됩니다 카탈로그 폴더에 urlspy 파일을 만들고 나중에 뷰를 만들면 urlpatterns 변수를 채 웁니다 다음은 postgres 마이그레이션을 수행하는 것입니다

여기에 구문 오류가 발생합니다 그리고 include 함수를 포함하는 것을 잊었 기 때문에 여기에 또 다른 오류가 있습니다 이제 네 PgAdmin을 체크인하면 django가 필요한 모든 테이블을 만드는 방법 관리, 사용자 및 인증을 위해 우리는 응용 프로그램을 테스트했으며 장고는 예상대로 작동합니다 URL 카탈로그에 대한 관련보기가 없기 때문에 오류가 발생합니다

/, 그러나 장고는 잘 작동합니다 카탈로그 애플리케이션의 모델을 작성합니다 Book 모델에 필요한 기본 모델부터 시작하겠습니다 full_name 필드 만있는 작성자 모델 모든 저자가 포함 된 별도의 모델을 만들어야합니다

책 모델의 저자 필드 이후 여러 저자가 포함될 수 있습니다 순서를 정의하는 메타 클래스 복수형의 변수 이름을 반환하는 방법은 인스턴스가 참조 될 때 게시자를 먼저 만들기 위해 광고 문안 모델 책 모델에서 읽어보십시오 책 또는 기사의 상태를 표시하는 데 사용할 모델 상태 세 가지 가능한 불변 값 중 하나이므로 상수와 choices 속성을 사용할 것입니다

두 가지 가능한 값으로 모델을 인쇄하십시오 기사의 사진을 저장할 미디어라는 폴더를 준비합니다 나는 그것들을 두 가지 범주로 분류 할 것이다; 책의 사진과 기사의 나머지 사진 이제 책 사진을위한 PhotoBook 모델을 만들고 데이터베이스에 저장 될 ImageField 필드와 함께 책의 사진이 저장 될 경로 (이미지가 아닌) settings

py 파일에 일부 변수 만 추가하면됩니다 그래서 장고는 사진을 잘 관리합니다 우리는 기사의 사진에 대한 다른 유사한 모델을 만듭니다 다른 폴더에 저장합니다 컬렉션 모델도 필요합니다

그러면 모든 책 모음이 저장됩니다 그리고 해당 필드에 다른 모델이 포함될 책 모델 콜렉션 필드는 콜렉션 모델과 일대 다 관계 (ForegeinKey)를 갖습니다 즉, 책 모델의 각 레코드는 컬렉션 모델의 레코드를 포함 할 수 있습니다 저자 필드는 다 대다 관계 (ManyToManyField)를 갖습니다

즉, 동일한 레코드에 Author 모델의 여러 레코드가 포함될 수 있습니다 숫자 필드의 경우 작은 양의 정수가 있습니다 지금은이 모델 내에 상수 값의 모델을 배치하겠습니다 발행물의 URL을 저장하려면 다른 모델이 필요합니다 TextField가있는 설명 필드 양식에서 TextArea 요소로 표시됩니다

보시다시피 일부 분야에서는 비어있을 수 있다고 말합니다 BD의 경우 null = True이고 양식의 경우 blank = True입니다 기사를 만들 때 마지막으로 사진과 간행물을 남길 것입니다 수집 필드도 비워 둘 수 있습니다 모든 책이 컬렉션에 속하는 것은 아니기 때문입니다

마지막으로, 나머지 기사를 포함 할 모델 기사입니다 이 모델에는 책 모델에 대한 몇 가지 공통 필드가 있으므로 우리는 파이썬 프로그래밍의 원칙 중 하나를 고려하여 이것을 코딩 할 것이다; 반복적이고 불필요한 코드를 생성하지 마십시오 우리는이 공통 분야를 새로운 추상 클래스로 추상화 할 것입니다 그런 다음 다른 모델에서 상속합니다 BD에서는 추상 모델이 생성되지 않습니다

코드 저장에만 도움이됩니다 Django에서는이 모델을 Mixin이라고합니다 명령 콘솔로 돌아가서 환경을 활성화하고 이미지 처리를위한 특정 라이브러리 인 다른 Pillow 패키지를 설치합니다 ImageField 필드 유형을 사용할 수 있어야합니다 이제 마이그레이션을 만들어 봅시다

오류가 발생합니다 ForeignKey 필드에 null 값을 포함 시키려면 on_delete 속성을 추가해야합니다 연결된 레코드를 삭제하는 경우 빈 필드가 표시됩니다 BD의 ManyToManyField 필드는 null 일 수 없습니다 그러나 양식이 비어있을 수 있습니다

null이 아닌 경우 ImageField 필드 기본값을 요구하므로 null로 설정합니다 마이그레이션을 다시 시도하십시오 이제는 PgAdmin에서 BD의 상태를 확인하십시오 해당 필드를 사용하여 모든 테이블을 생성 한 방법을 확인합니다 이 관리 응용 프로그램은 startproject로 프로젝트를 만들 때 Django가 만들었습니다

그런 다음 관리 사이트의 모델 만 등록하면됩니다 이것이 가장 기본적인 방법입니다 추상 클래스는 등록하지 않아야합니다 또한 모델에 액세스 할 수있는 권한이있는 관리 계정이 필요합니다 이제 관리자로 로그인하고 로그인 할 수 있습니다

기본적으로 모든 모델에 액세스 할 수 있는지 확인합니다 첫 번째 레코드를 추가합니다 먼저 책을 추가하려고합니다 필드 이름을 보면 비어 있거나 널이 될 수있는 필드가 다른 색상인지 확인합니다 기사를 등록한 다음이 필드를 채울 수 있습니다

사진을 찍어 게시 할 때 여기에서 그는 레코드가 올바르게 저장되었다는 메시지를 보여줍니다 BD에서 확인해 봅시다 저자, 컬렉션 및 출판사에 대한 기록도 만들었습니다 이 애플리케이션은 로컬에서만 작동하지만 디자인이 다른 홈페이지와 다른 페이지를 만들 것입니다 이를 위해 해당 뷰도 생성합니다

원하는 데이터가 노출됩니다 카탈로그 / 뒤에 빈 URL을 추가합니다 indexhtml 페이지로 리디렉션됩니다 views

py에서 필요한 뷰를 선언합니다 필요한 모델을 가져옵니다 템플릿 옆에 데이터를 반환하는 함수를 만듭니다 템플릿을 저장할 폴더를 만들고 그리고 홈페이지의 기본 템플릿 또한 정적 내부에 두 개의 폴더를 더 만듭니다

스타일 시트와 자바 스크립트 파일을 저장합니다 디자인에 Bootstrap을 사용할 것입니다 다운로드 한 모든 파일 중에서 두 가지 컴팩트 파일 만 필요합니다 minjs 및 min

css, 다른 사람이 삭제할 수 있습니다 basehtml 템플릿에는 모든 템플릿에 대한 공통 헤더가 포함되어 있습니다 그리고 네비게이션 바 index

html 템플릿에는 각 모델의 총 레코드 목록이 포함되어 있습니다 PubURLs 모델의 이름을 Publications로 변경하겠습니다 그런 다음 변경 사항을 postgres로 마이그레이션하십시오 다시 시도하면이 오류를 예측할 수있었습니다 해당 URL이 아직 정의되어 있지 않기 때문입니다

단계를 밟아 봅시다 다음은 각 템플릿에 필요한 모든 뷰를 만드는 것입니다 우리는 완전히 새로운 관리 인터페이스를 만들고 있음을 기억하십시오 Django가 기본적으로 제공하는 관리 인터페이스와 유사합니다 localhost / admin으로 입력 한 것 하지만 우리와 함께 더 설명적인 다른 URL을 입력하겠습니다

그리고 우리는 원하는대로 인터페이스 디자인을 할 것입니다 물론 장고가 많은 시간을 절약 할 수는 있지만 모든 것이 제대로 작동합니다 각 모델마다 두 개의 클래스를 만듭니다 하나는 모든 모델 레코드를 나열하고 다른 하나는 모델의 특정 레코드의 세부 사항을 보여줍니다 각 클래스마다 세 가지 변수를 할당합니다

하나는이 뷰가 연결되는 모델을 나타냅니다 새 변수 이름을 나타내는 또 다른 옵션 모델에서 추출한 데이터를 참조합니다 클래스가 ListView에서 파생되면 모든 레코드를 반환합니다 클래스가 DetailView에서 파생되면 특정 레코드를 반환합니다 우리가 당시에 표시 할 마지막으로 HTML 템플릿을 나타내는 다른 변수 이 모든 데이터를 나타냅니다

여기에 뷰에 대해 정의 된 클래스에서 Django가 사용하는 MVT 패턴을 더 잘 이해할 수 있습니다 뷰가 (urlspy 파일로부터) 요청을 받으면, 해당보기에서 처리됩니다 액세스 권한을 준비합니다 (있는 경우) 모델에서 (models

py 파일에서) 요청 된 데이터를 추출합니다 클라이언트의 브라우저로 응답을 보냅니다 지금까지 간단한 읽기 전용보기를 만들었습니다 허가가 필요없는 이제 BD에 액세스 할 수있는 뷰를 추가하겠습니다 따라서 로그인해야합니다

우리는 또한 해당 양식이 필요합니다 모델 필드를 편집 할 수 있습니다 CreateView, UpdateView 또는 DeleteView 클래스를 상속하면 Django는 해당 Form 클래스를 자동으로 생성합니다 양식과 상호 작용하는 데 관련된 모든 논리를 데이터의 유효성을 검사하고 보안을 통합합니다 모델마다 3 개의 클래스를 만들고 레코드 작성, 업데이트 및 삭제 조치에 해당합니다 처음 두 클래스는 같은 템플릿을 가리 킵니다

마지막 클래스는 다른 삭제 확인 템플릿을 가리 킵니다 해당 URL에보기를 지정하십시오 나는 그것들을 여러 그룹으로 나누었다 처음 두 그룹은 읽기 전용 액세스를위한 URL (목록 및 세부 정보)입니다 나머지 세 그룹은 전체 액세스를위한 URL입니다

이제이 URL에 대한 템플릿을 만들어야합니다 모델을 나열하기 위해 템플릿으로 시작해 봅시다 먼저 각 모델마다 방법이 필요합니다 주어진 레코드의 URL을 반환하려면 템플릿 링크를 만들 수 있습니다 첫 번째 템플리트는 항목 모델의 레코드를 나열합니다 다른 모델의 레코드를 나열하는 다른 템플릿 그것들은 매우 비슷하며 복사 만하면됩니다

해당 변수를 변경하십시오 이제 레코드의 세부 사항에 대한 템플리트를 사용합니다 처음 두 개의 템플릿과 더 많은 작업이있는 기사 및 책 모델의 세부 사항에 대한 템플리트입니다 더 많은 필드가있는 모델이기 때문입니다 그리고 마지막으로 데이터베이스에 대한 전체 액세스 권한이있는 템플릿; 양식

이것으로 우리는 빨리 끝날 것입니다 장고가 자동으로 코드를 생성하기 때문입니다 동일한 템플릿 이름을 사용하므로 template_name 변수를 통해 Django가 기본적으로 할당 한 것보다 할당 할 필요가 없으므로 모든보기에서 삭제합니다 우리는 몇 줄의 코드를 저장합니다 첫 번째 양식은 기사 모델의 레코드를 작성하고 업데이트하는 데 도움이됩니다

매우 기본적인 형태입니다 Django가 블록 컨텐츠의 컨텐츠를 생성하는 곳, 각 모델 필드에 대한 입력 필드를 만듭니다 양식을 만드는 가장 빠른 방법입니다 같은 템플릿을 사용할 수도 있습니다 나머지 모델의 다른 모든 형태에 대해 그것들을 구별하는 자신의 변수를 사용하지 않기 때문입니다 그러나 우리는 이것을하지 않을 것입니다

각 모델에 대한 사본을 작성하고 프로젝트 디자인 단계에서 페이지 디자인에 유연성을 높이기 위해 필드를 수동으로 추가합니다 그러나 이것으로 우리는 도착할 것입니다 첫 번째는 백엔드가 제대로 작동하는지 확인하는 것입니다 작업 할 모든 변수를 인식하고 모든 페이지와 원활하게 상호 작용할 수 있습니다 또한 레코드 삭제 확인 템플릿이 필요합니다

다른 모델의 경우 Django가 기본적으로 할당 한 이름으로 계속 template_name 변수의 뷰에 우리는 article_confirm_deletehtml을 사용하여 시작할 것입니다 그런 다음 나머지 템플릿을 만듭니다 코드를 디버깅하고 오류를 수정하며 테스트합니다

명령 콘솔을 위해 Windows에서 별명을 작성합니다 알다시피, 우리는 개발 단계에 있습니다 우리는 같은 명령을 여러 번 반복합니다 가상 환경을 활성화 한 다음 테스트 서버를 시작하십시오 쉽게 해보자 먼저 Alias

bat라는 파일을 원하는 위치에 만듭니다 여기에는 DOSKEY 명령이 포함됩니다 언급 된 두 프로세스를 실행합니다 그런 다음 Autorun이라는 문자열 값을 추가합니다 레지스트리의 HKEY_CURRENT_USER Software Microsoft Command Processor 폴더 안에 콘솔이 시작될 때

bat 파일이 실행되도록하려면 정의 된 매크로를 사용할 수 있습니다 메모장 ++는 우리가 본 것처럼 기능을 수행하는 범용 편집기입니다 하지만 프로젝트가 성장함에 따라 예를 들어 고급 편집기가없는 경우 프로젝트 파일의 탐색 패널을 포함하거나 코딩하는 동안 추가 도움말이 통합되어 있습니다 메모장에서 감지하지 못하는 일반적인 구문 오류를 피하기 위해 변수 나 함수의 이름을 기억하도록 돕기 위해 더 유용한 것들 중 하나입니다 LiClipse는 Python으로 프로그래밍하기에 이상적인 편집기입니다

특히 Django에서는 무료입니다 LiClipse는 PyDev가 통합 된 Eclipse의 확장입니다 파이썬으로 개발하기위한 모듈입니다 그래서 다운로드하여 설치하겠습니다 아래에 사이트의 링크를 배치하겠습니다

이 테마로 LiClipse를 구성했습니다 또한 내가 원하는 것을 다운로드 할 것입니다 시력이 떨어지기 때문에 어두운 배경을 선호합니다 스토리지 프로젝트도로드했습니다 인터페이스에 대한 개요를 갖습니다 그런 다음 세부 사항으로 이동합니다

지금은 왼쪽의 탐색 패널을 볼 수 있습니다 프로젝트 파일을 표시하고 클래스를 볼 수있는 곳, 그리고 이것들 안에서 변수와 함수 요소를 두 번 클릭하면 직접 요소로 이동합니다 빨간색 밑줄이있는 LiClipse는 코드의 오류를 나타냅니다 탐색 아이콘에는 경고 아이콘이 있습니다

이 오류를 비활성화하려면 문제 패널에서 경고 메시지를 삭제합니다 LiClipse는이 오류를 발생시킵니다 BOM으로 UTF-8 문자 세트를 감지합니다 그러나 그것은 중요하지 않으며 모든 것이 정확합니다 더 나은 작업을 위해 두 파일을 병렬로 배치 할 수도 있습니다

창문을 원하는대로 나누거나 해당 탭을 누르고 드래그하면됩니다 LiClipse 설치는 영어로만 이루어 지므로 맞춤법 검사기라는 점을 명심해야합니다 모든 단어를 잘못된 것으로 표시 사전에없는 영어 이외의 사전을 스페인어로 설치하겠습니다 인터페이스가 아닌 교정자 전용입니다 구성을 계속합니다

인쇄 선은 텍스트 편집기에서 숨길 수 있습니다 인쇄 여백 표시를 선택 취소합니다 다음으로 PyDev를 구성합니다 올바른 Python 실행 파일을 사용하십시오 이곳은 다른 통역사를 나타내는 곳입니다 각 가상 환경에 해당 우리가 만들고 시도하고 싶은 프로젝트 속성에서 그중 하나를 할당 할 것입니다

목록의 첫 번째가 기본값입니다 이제 새로운 장고 프로젝트를 만들어 기존 프로젝트에 연결하겠습니다 어떤 이유로 LiClipse는 BooksWeb 폴더에서 파일을 추출했습니다 이것은 우리가 원하는 것이 아니므로 다시 넣습니다 manage

py 파일은 프로젝트의 루트 폴더에 있어야합니다 이러한 오류는 postgres 서버가 중지되어 BD를 찾을 수 없기 때문에 발생합니다 자,이 브라우저 오류는 정적 파일을 찾을 수 없기 때문입니다 PyDev가 Django 테스트 서버를 실행하고 있기 때문입니다 정적 파일을 관리하고 있습니다

그게 우리가 원하는 것이 아니고, 화이트 노이즈가 그것들을 관리하기를 원합니다 위의 프로젝트 구성에서 변경된대로 프로덕션 모드에서와 같이 –nostatic 매개 변수를 추가하겠습니다 글쎄, 우리는 이미 더 나은 작업을 계속할 LiClipse를 준비했습니다 각 프로젝트마다 다른 실행 파일을 구성해야합니다 각 프로젝트의 manage

py 파일을 참조합니다 여기서는 다른 프로젝트가 닫혀 있기 때문에 Trastero 프로젝트 만 볼 수 있습니다 Test라는 새로운 장고 프로젝트를 만들겠습니다 보시다시피 PyDev는 콘솔에서 managepy startproject 명령을 사용할 때; 모든 기본 파일을 사용하여 프로젝트의 골격을 만들고 거의 갈 준비가되었습니다

PyDev는 Run에 대한 새로운 구성을 자동으로 생성합니다 테스트 프로젝트를 위해 지금부터 사용할 것입니다 이제 프로젝트 내에서 응용 프로그램을 만들고 카탈로그라고 부르겠습니다 콘솔에서 managepy startapp 명령을 실행하는 것과 같습니다

LiClipse에서 Django의 모든 것을 실제로 할 수 있습니다 BD의 마이그레이션과 프로젝트 테스트를 수행 할 수 있습니다 또한보고있는 것처럼 오류를 즉시 디버그 할 수 있습니다 약간의 조정과 준비가 될 것입니다 마지막으로 테스트 프로젝트의 복사본을 기본 프로젝트로 만들고 향후 프로젝트를 위해 저장하겠습니다

콘솔에서와 같이 여기에서 명령을 실행할 수 있습니다 예를 들어, collectstatic 명령을 작성하여 LiClipse에서 실행합니다 여기에서 매개 변수와 함께 모든 명령을 작성할 수 있습니다 TTY가 필요한 명령을 제외하고 createuperuser 명령과 같은 명령 콘솔입니다 LiClipse와의이 검토 후 Trastero 프로젝트로 돌아가서 디테일 뷰에서 약간의 오류가 발생했습니다

pk 매개 변수 캡처가 올바르게 수행하지 않기 때문입니다 정규식은 매우 강력합니다 학습하기 어려운 구문이 있지만 이를 통해 거의 모든 URL을 매우 정확하게 필터링 할 수 있습니다 그러나이 프로젝트에서는 복잡한 URL을 사용할 수 없습니다 re_paths를 경로로 바꾸겠습니다

더 간단하고 널리 사용되는 옵션이 있습니다 꺾쇠 괄호와 같이 이미 Django에 의해 생성되었습니다 정수 또는 숫자의 캡처 <입력 : pk> 관리자 권한이있는 사용자로 로그인해야합니다 기본 제공 LoginRequired 클래스로보기에 액세스합니다

앞서 만든 사용자와 함께 Django의 기본 관리 응용 프로그램에서 여기에서는 성공한 경우 애플리케이션을 리디렉션하기 위해 URL이 누락되었음을 알려줍니다 레코드를 삭제 한 후 우리는 이미 프로젝트가 제대로 작동하고 있다는 근거를 가지고 있습니다 다음은 일부 분야를 개선하는 것입니다 기사의 사진을 표시하기 위해 회전식 슬라이드 쇼를 추가하는 방법

먼저, 세션 제어를위한 로직을 추가하겠습니다 응용 프로그램의 보안 수준이 가장 낮습니다 로컬에서만 작동하도록되어 있지만 아마도 당신이 사용하는 장치는 그것은 다른 사람들과 공유되는 장치이므로 너무 많이 오지 않을 것입니다 먼저 사용자 계정에 대한 매핑을 추가합니다 그런 다음 설정 파일에서 LOGIN_REDIRECT 변수를 정의합니다

로그인 한 후 응용 프로그램이 홈 페이지로 리디렉션됩니다 템플릿 폴더 안에 이름 등록이있는 다른 폴더를 만듭니다 django가 인증 템플릿을 찾는 곳입니다 이 폴더 안에 템플릿을 만듭니다 여기에 표시된 것과 정확히 동일한 이름으로 우리는 또한 로그인 및 로그 아웃 링크를 추가 탐색 메뉴에서 템플릿 경로를 수정했습니다

비밀번호 재설정시이 오류는 Django는 도메인이나 호스트를 할당하지 않았기 때문에 우리에게 제공합니다 비밀번호 변경 링크가 포함 된 메일 발송 위치 호스팅 할 Gmail 계정을 만들겠습니다 Google API에 연결하려면 16 자리 애플리케이션 비밀번호가 필요합니다 이를 위해서는 두 단계로 인증을 통해 계정을 설정해야합니다 Google에서 생성 한이 애플리케이션 비밀번호를 설정에서 복사하여 테스트합니다

LOGIN_REDIRECT 및 LOGOUT_REDIRECT 변수를 다시 추가합니다 암호를 변경하면 암호를 가져 가면 오류가 발생하는 것 같습니다 이제 사진이 포함 된 모델의 필드를 수정하고 제대로 표시되도록 먼저 프로젝트 루트에 폴더를 만들고 managepy 파일은 어디에 있습니까? 여기서 django는 사용자가 업로드 한 파일 (이 경우 이미지)을 배치합니다 나는 그것을 반으로 불렀지 만 우리는 그것을 우리가 원하는 것으로 부를 수 있습니다

또한 정적 파일 폴더 내에 다른 미디어 폴더를 만들고 파비콘이나 로고와 같은 정적 이미지를 포함 할 수 있습니다 다음은 설정에 변수를 추가하는 것입니다 정적 미디어 파일이 아닌 동적 미디어 파일의 경우 그런 다음 urlspy 파일에서 다음 행을 추가합니다 미디어 파일의 URL이 개발 단계에만 할당되도록합니다 생산 단계에서 이러한 파일은 Gunicorn 서버에서 관리합니다 이 프로젝트는 로컬에서 작동하도록 설계되었지만 VPS에 업로드하고 온라인으로 응용 프로그램에 액세스 할 수 있습니다

양식에이 속성을 추가해야합니다 사용자가 파일을 업로드해야하는 위치 예, 우리는 응용 프로그램을 테스트 테스트 이미지가 이미 표시되어 있습니다 템플릿에서 객체 끝에 URL을 추가해야합니다 BD에서 모든 것이 잘 등록되었는지 확인합니다 그리고 이것으로 신청서가 완성됩니다

당신이 바꾸고 싶은 디자인은 당신의 것입니다 프로젝트의 다음 단계는이 장고 애플리케이션을 BD로 전송하는 것입니다 Android 또는 iOS 시스템의 경우 모바일에 적용되지만이 동영상에서는 더 이상 설명하지 않습니다 그러나 이것은 웹 개발자가해야 할 단계입니다 모바일 기술의 광범위한 사용을 고려할 때 일부 개발자조차도 먼저 모바일 응용 프로그램을 만든 다음 다른 장치를 만듭니다

이 시나리오에서 몇 가지 옵션이 있습니다 우리가 구현하고자하는 응용 프로그램의 유형에 따라 덜 일반적인 응용 프로그램 모바일에서 로컬로 작동하는 애플리케이션 즉, 인터넷 연결이 필요하지 않습니다 저장실 프로젝트처럼 다운로드하는 것 이상 로컬에서만 작동합니다 이 시나리오에서 내가 선호하는 솔루션은 Android 용 QPython을 설치하는 것입니다

이것은 실제로 네이티브 파이썬과 동일합니다 그리고 이전과 마찬가지로 가상 파이썬 환경에서 장고와 필요한 패키지를 설치하겠습니다 그런 다음 프로젝트를 업로드하고 runserver로 시작합니다 localhost를 사용하여 브라우저에서 액세스하십시오 이 환경에서는 더 가벼운 SQLite BD를 사용하는 것이 좋습니다

Trastero 프로젝트에는 많은 수의 사용자가 필요하지 않습니다 또는 수천 개의 레코드를 처리하십시오 다른 시나리오에서 가장 일반적인 응용 프로그램은 서버를 통해 인터넷에 연결되어 있습니다 그것은 그녀를 섬기고 있습니다 모바일 기기에 브라우저가 설치되어 있으면 Chrome이면 충분합니다

이 프로젝트는 부트 스트랩을 통한 반응 형 디자인입니다 또한 모든 화면 크기에 완벽하게 맞습니다 이 시나리오의 또 다른 대안은 프론트 엔드에 Flutter를 사용하는 것입니다 백엔드를위한 Django REST 프레임 워크 이런 식으로 우리의 응용 프로그램은 모바일 기술에 더 잘 통합 될 것입니다

안드로이드와 iOS 모두를위한 멀티 플랫폼 애플리케이션이기 때문입니다 Flutter는 Google 사용자 인터페이스 툴킷입니다 아래에서 전체 프로젝트 링크 옆에 링크를 남겨 두겠습니다 재활용을 시작하고 동시에 돈을 벌 수 있습니다 글쎄,이게 바로 여기에 작별 인사를하고 이 비디오가 여러분에게 도움이 되길 바랍니다

모두에게 인사합니다