Easy Maps Apps in Java and Python

안녕 개발자로서 나는 내 시간이 소중하다는 것을 안다 1 인치의 시간, 금 1 인치 시장 출시시기가 더 중요합니다

그래서 앱을 만들 때 내가해야 할 첫 번째 일은 갈 것입니다 개발 속도를 높이기 위해 몇 가지 클래스 라이브러리 찾기 나는 알렉스 다닐로, 너를 소개하겠다 Google지도 API의 매우 강력한 라이브러리 이제 Google지도 및 관련 API로 매우 다양한 기능을 갖춘 애플리케이션을 구축 할 수 있습니다 지리적 위치 기반 서비스 (LBS) 모듈 애플리케이션에 통합 그러나 당신이 이것을하려고 할 때, 그것은 곧 위압적 일 것입니다 우리는 많은 클라이언트를위한 클래스 라이브러리를 만들었습니다

작업을 더 쉽게하기 이 라이브러리에 대한 기본 지원 Java 및 Python 언어 개발 용 서버 측 그래서 그들이하는 일은 기존 API의 인터페이스를 사용하는 것입니다 길 찾기 API, 거리 매트릭스 API Elevation API, 지오 코딩 API 및 표준 시간대 API 이러한 API 인터페이스를 사용하면 보통 이것은 일부 응용 프로그램에있는 경우입니다 Google지도를 사용해야하는 경우, 서버가 제공하는 RESTful 아키텍처 상태 비 저장 인터페이스 물론 다른 언어를 사용하여 개발하는 경향이 있다면 예를 들어 Java 또는 Python과 같이 작업량이 많습니다 우리는 이미 당신을 돕기 위해 다른 클래스 라이브러리를 만들었습니다 이러한 서비스에 대한 연결 설정 관련 언어에 대한 인터페이스를 제공합니다

따라서 Java 인터페이스를 JavaScript 인터페이스로 변환 할 필요가 없습니다 또는 다른 인터페이스 간의 상호 연결 등 이제이 방법의 다음과 같은 이점이 있습니다 첫째, 우리는 이미 당신을 위해 해냈고 그것을 테스트했습니다 너는 분명히 실현 가능하다

둘째, 코드 양을 줄입니다 이것은 실제 코드 양입니다 실제 비즈니스를 처리하기 만하면됩니다 지금이 일의 아름다움은 그것이 아주 잘 지어 졌다는 것입니다 당신에게 간단한 인터페이스를 제공 할 클라이언트 라이브러리 API 뿐만 아니라 인증 및 비밀 키를 처리합니다

앱용 모듈이있는 경우 개발이 약간 복잡 할 수 있습니다 하지만 내가 좋아하는 기능 중 하나는 다시 시도하는 것입니다 서버가 가능할 때 수행되는 작업 다시 시도 간헐적 인 장애 또는 극도로 불안정한 네트워크 연결 또는 이와 유사한 상황 특히 모바일 네트워크에서 직접 무시합니다 아무 일도 일어나지 않을 것이다 이것은 대단하다

많은 사람들이 좋아할만한 또 다른 사항은 속도 제한입니다 따라서 서버와의 연결이 제한됩니다 그래서 너는 너머에있는 무언가에 빠지지 않을 것이다 할당량 한도 오류 이 클래스 라이브러리는 설정 한 속도로 쿼리 할 수 ​​있습니다 응용 프로그램이 피할 수 있도록 할당량 초과로 인한 오류 아마도 가장 중요한 것은 이러한 라이브러리를 프로젝트에 통합 할 때 로컬 개체를 실제로 처리하고 있습니다

그래서 당신이 자바를 사용한다면 실제로 자바 객체를 조작 할 것이다 따라서이 메소드를 호출하면 Java 객체를 직접 조작 할 수 있습니다 파이썬은 이미 매우 간단합니다 시간을 절약하기 위해 대처할 필요가 없습니다 직접 반송 따라서 URL을 설정하거나 URL을 설정하지 않아도됩니다

이렇게하면 JSON 전송 결과가 저장됩니다 모델 맵의 시간을 수동으로 설정하십시오 또 다른 이점은 Java 라이브러리를 사용하는 경우입니다 그것은 당신이 동기 또는 비동기 연결을 만들 수 있습니다 연결을 실행하는 방법을 선택하십시오 가장 중요한 것은이 전체 클라이언트 라이브러리 세트가 오픈 소스라는 것입니다

그래서 당신이 원한다면 그것을 수정하거나 자신의 공헌을 할 수 있습니다 자세한 내용은 URL에 대한 문서로 이동하십시오 여기 Github 저장소에서 볼 수도 있습니다 Java 및 Python 소스 코드 우리는 당신이 만든 응용 프로그램을 보게되어 기쁘게 생각합니다 그리고 우리가 나중에 우리를 지원하기를 원한다는 것을 당신에게 알려주기를 바랍니다

어떤 언어 저는 Google 개발자 플랫폼 팀의 Alex Danilo입니다

Python on Azure: Part 1—Building Django apps with Visual Studio Code | Azure Friday

>>이 첫 번째 에피소드의에서 우리의 네 계열에 Python Django와 Azure Carlton Gibson 탐험가 설정 하는 방법을 표시 하기 위해 Django는 Python 응용 프로그램 및 나머지 Django 프레임 워크 Visual Studio 코드를 사용 하 여 Python 확장 설치 통합 된 터미널을 사용 하 여 Azure 금요일 오늘 디버깅 합니다 >> [음악]

>>이 봐, 친구, Pythonistas Nina Zakharenko, 한 수석 난 클라우드 개발자 지지자에 Python에 초점을 맞춰 Microsoft입니다 오늘, 내가 여기와 Carlton Gibson입니다 그는 Django 동료 Django에 대 한 유지 관리자 나머지 Django와 함께 여러 프레임 워크 다른 응용 프로그램입니다 >> 안녕하세요 Nina

>> 환영 합니다 >> 감사 안녕하세요, 음, 좋아 오늘, 내가 여기를 보여합니다 Visual Studio 코드를 사용 하는 방법 Django 응용 프로그램입니다 따라서 예제 응용 프로그램 복제 한 필자는 나머지-프레임 워크-자습서 프로젝트 대부분의 사람들이 잖 아 쉽게 익힐 수 있습니다

간단한 코드 조각을 응용 프로그램에는 어디에서 API를 노출 코드 조각을 만들 수 있는 수 있습니다 다음 같은 코드를 코드 조각 강조 표시 됩니다 API를 찾아볼 수 있으십시오 고 나머지 모든 이 멋진 프로젝트 완벽 하 게 기능 이지만 하지 정말 커 방식으로 가져올 수 있습니다 >> 예, 다음과 같은 유용한 유틸리티입니다 >> 예 내가이 프로젝트를 복제 한 통합을 비주얼 코드를 나타냅니다

따라서 시작 하자입니다 여기에, 난 이미 있어 프로젝트 복제 하 고 그러니까 전문화 환경 설정입니다 그렇다면 그건 바로 해당 노트를 보여 단지 그 터미널을 종료 했습니다 없습니다 되도록 하 고 Safari를 숨깁니다 Visual Studio 코드를 열어 보겠습니다 >> 유용 합니다

>> 다음 열고는 "나머지-프레임 워크-자습서" 확인 하 고는 열기를 제공 합니다 자습서 응용 프로그램에서 조각 및 그렇게 되어 있는데 조각은 모델이 일반 Django 모델에서는 제목, 필드 전 실제 코드는 줄 번호, 언어 강조 표시 된 필드를 때의 아래로 모델 저장 안료를 통해 실행 구문 형광펜 코드를 강조 표시를 제공 하 고 있습니다 따라서 우리는 예를 보려면 작업 우리가 무엇을 할 수는 우리는 여기에서 터미널을 가져올 수 있습니다 따라서 내가 방금 사용 간단 새 터미널 하 네입니다 >>를 다시 T, 오른쪽? >> T 백 예, 제어를 할 수 있는 그를 여기 있는 메뉴

새 터미널을가지고 모든 종류의 작업을 실행 합니다 일을 진행 합니다 아니오, 걱정, 고민 먼저 것입니다 Visual Studio의 코드는 Python의 우수한 통합 설치 해야 하는 Python 확장 이 위해서는 가져올 따라서 이제 닫습니다 절대로 불가능 하므로 터미널 지금 내 작업

이 Python 확장 하기 구문 강조 표시를 사용 하면 코어 완성 제공 하면 수도 있습니다 그렇게 할 경우 Python을 사용 하 여 사용 하는 해야 하 고 정품 인증을 다시 로드 합니다 그래 그런 다음이 목록의 확장의 몇 가지 다른 것 들이 있어요 실제 프로그램 확장으로 Django 템플릿, 지원, 문서 내가 사용 하는 사항입니다 다시 살펴보겠습니다를 나중에 합니다

다시 modelspy를 열어보겠습니다 >> 했으므로 Python 확장 가능 하 고 설치 몇 가지 새로운 것은 다음 화면에서 오른쪽? >> 그래입니다 따라서 오른쪽 아래 로드에 표시 될 때 Python 인터프리터와 그 거 또한 코드 분석 수 배경에 따라서 여기서 다운 화려한 란 확인 자동으로 검색 내 가상 환경 선택 된 것을 하 고 사용 하는 우리 것을 사용 하 여 파일 식의 말은, "Pylint는 설치 되어 있지만 사용할 수 없습니다

" 따라서 pylint를 사용 하겠습니다 따라서,를 통해 우리 유용한 추가 코드의 서식을 지정할 때 그렇다면 저 걸 해 보겠습니다 터미널 다시 터미널을 열어야 합니다 지금, VSCode, 있기 때문에 내 가상 환경 자동으로 발생 합니다 것을 내 가상 환경을 활성화 합니다 >>를 위대한

>> 예 단지 적게 입력은 돌아다니는 적습니다 할 수 있는 하 고는 매우 익숙한 managepy 서버입니다 >> 따라서을 가져올 것 입니까 Django 응용 프로그램? >> 예

정확 하 게, 많은 같이 다음의 URL를 가리키면 수 있습니까 바로 먹을 수 클릭 하 고 역할을 할 여기 URL 열기 응용 프로그램입니다 따라서 이것이 말씀 드렸습니다 API 응용 프로그램 확인을 하 고 이것은 탐색할 수 있는 인터페이스 경우에 선택할 수 있습니다 다른 형식으로 JSON 형식을 선택할 수 있습니다 가져올 합니다

원시 JSON 응답을 깔끔하게 Firefox 강조 표시 됩니다 >> 우 와입니다 >> 작업을 완료 하는 추가 JSON 쿼리 매개 변수 형식 그리고 콘텐츠 협상을 통해 표시 형식을 변경합니다 >> 지금이 전체 아름 다운 API 브라우저 나머지 Django 프레임 워크의 일부 인지 확인 >> 예, 및 그런 나머지 Django 프레임 워크 즉시 사용할 수 있는 제공합니다 볼 수 있도록, 조각 됩니다

몇 가지 조각 데이터베이스에 가 있고 이 강조 표시 된 보기 안료를 액세스할 수 있습니다 구문 코드 조각 강조 표시 됩니다 따라서 응용 프로그램입니다 돌아가 응용 프로그램 루트입니다 전 일부 기능 및 표시 하는 방법 쉽고 빠른 방법 Visual Studio 코드 Python 확장 사용 Python 코드를 만듭니다 따라서 기능 여기 접수 했습니다

방금 알 았 어 것 약간 추가 합니다 그러므로 이제 우리의 터미널 숨기기 접수 했습니다만 IPR 준비 사용자를 고민 하 고 조각 되어 있는데 따라서 그룹과 동일한 때문입니다 우리가 계속 사용 하는

따라서 가장 먼저 있을 때 필요 추가 코드는 serializer입니다 따라서 필자가 한 작업은, 사용한 명령 패널 이 패널에 나타납니다 서명할 수 있는 모든 파일 이름과 그가 즉시 사용자 찾을 >>는 직렬 변환기를 설명 모델을 표시 하는 방법입니다 >> 그래입니다

>>에서 API 브라우저? >> 예, 정확 하 게 여기에서 자동 완성 정보 그룹화 합니다 따라서 여기서는 serializer를 사용할 수 있습니다 그러나 다른 하나를 만들어 보겠습니다 일부 좋은 얻을 여기 템플릿 사용 하 여 자동 완성 합니다

따라서, Visual Studio 코드 기술 코드를 만들 수 있습니다 템플릿 매개 변수를 사용 하는 쉽게 만들 수 있습니다 기본 구성 요소 코드입니다 >> 우 와입니다 >>에서 Mongo

단지 배치 일부 거기에서 줄 바꿈을 합니다 그러니까, 이므로 serializer가 있는 필드를 렌더링 하는 컨트롤 형식으로 기온 수 있는 있는 JSON 직렬화 합니다 그런 다음, 그 외에도 필요 추가 하는 보기입니다 그렇게 여기 위쪽에 다시 아마도 그룹 가져오기 해야 합니다 당신이 군, 자동 완성 알아야 하 고 여기에 보기를 만들어 보겠습니다

>>이 viewsets에 연결 보기에 사용 되는 모델입니다 >> 따라서는 보기는 그룹, 따라서 한 Django 함수를 볼 매핑하는 것입니다 HTTP 요청에 다시 한 보기 및 응답 그 중 그룹이입니다 따라서 한 보기 구현 post 메서드를 사용 하는 이 Git 메서드 읽기 전용 모델 보기 하면 목록 보기를 제공 합니다 그와 기본적으로 세부 정보 보기 그리고 즉시 사용할 수 없이 작업을 수행 합니다 이건 뭐 GroupSerializer? GroupSerializer 사용 정의 앞 때문에 이것이 우리 깜 빡 잊고 가져와야 합니다

지금 우리가 여기와 우리를 제기 하는 경우 추가할 수 위 GroupSerializer 전환 그건 어떤 필요 저장 한입니다 Serializer를 사용 하 여 보기는 의미 하는 것과 경로를 입력 해야 Url에 는입니다 따라서, 이것은 다시 표준 Django 물건입니다 라우터로 이동 하 고 등록할 수 합니다 해당 그룹에서 오늘날, 철자를 내가 수 없습니다

여기 있어요 "ViewsGroupViewSet"입니다 >> 등에, 답변 드리기 전에 우리를 어떻게 표시 하 이러한 서식 파일 적용 >> 그래입니다 >> 코드 단지에 대 한 반복적으로 입력 볼 수 우리 어떻게 구성 된 것? >> 예, 지금 확인, 화려한

따라서 바로 제공 사용 하 고 "사용자 이동 "조각 및 해당 "Djangocode-조각" 그런 다음 했 고 방금 파일 여기에 조각입니다 모델을 하자 시기 바랍니다 하 고 먼저 serialize 합니다 "모델 이라고 Serializer 가"한 후 거 야 인 경우에 범위는 그 Python을 사용 하 여 관련입니다 몇 가지 관련의

Javascript에 대 한 Python의 일부, 일부 HTML의 무엇이 든 접두사는 입력 하는 것입니다 따라서 만들 거 야 "모델 Serializer를" "직렬 변환기"를 입력 합니다 및 그런 다음 자동 완성을 선택합니다 >> "탭"을 누르면 따라서 다음에 놓입니다 본문 하 고 있습니다 이러한 변수를 입력 합니다

>> 그래입니다 따라서 여기에서는 자리 표시자에 대 한 전 "모델"이 때문에 아래와 "모델" "모델"도 라고 합니다 둘 다를 입력 수 있습니다 동시에 해당 합니다 "보기를 보면 조각 "바로 아래 "모델", "모델", "모델" 전

여기서 입력 하는 경우 그룹 보기 설정 그룹 모델 개체 또는 그룹을 반복적인 좀 가져옵니다 >> 절대적으로 >>이 서식 파일 사용 그 피할 수 있습니다 >> 예 >> 지금, 매우 신속 하 게 이러한 추가 했습니다

>> 약간 불행 명명 그러나 이러한 조각 Visual Studio 코드 조각 및 있던 조각을 하지 응용 프로그램의 일부입니다 >> 예, 정확 하 게 없습니다 Django REST 프레임 워크 자습서 예제 개체입니다 아니요 따라서 다음과 같은 여 폼을 다시 로드 터미널의 것 모두 다시 로드를 클릭 보시 죠와 고 해당 그룹이 나타납니다

이 많이 됩니다 프레임 워크 기능을 놓습니다 본 기사의 주제, 하지만 우리가 추가 하는 이러한 기능을 응용 프로그램을 거의 입력을 매우 빠르게 합니다 이것이 제가 좋아하는입니다 이 후 원하는 다른 사항 디버깅 하는 경우를 나타냅니다

>> 그래입니다 >> 응용 프로그램에서 지금 여기 "Django 추가 했습니다 Admin "조각 응용 프로그램입니다 관리자는 하나는 Django의 핵심 기능입니다 보여줄게요 이 경우 실제 코드 않기 때문에 것입니다

해당 터미널 창을 닫습니다 너 야 하기만 하면 되므로 정의 여기는 모델 관리 한 다음 특정 모델에 등록 Django를 제공 합니다 기본적으로 있습니다 이 전체 관리 UI, 아주 간단 합니다 >>를 놀라운 >> 시작도 특징 중 하나는 되 고 있습니다

내가 예제를 만듭니다 따라서 이렇게 되 고이에 버그가 있습니다 예를 들어는 약간은 하지만 실제 버그를 그렇게 또 실제 생활에서 따라서 API에서 사용자 고유의 코드 조각을 만들 수 있습니다 없는 관리 할 수 있지만 또는 무엇이 든, 저는 하나를 만들 것입니다

이것은 "강조 표시" 상자를 닫습니다 이제이 "강조" 상자를 모델 개발을 명심 해야 합니다 "저장" 함수에서 입력 했습니다 저장 하는 경우에 생성 되었습니다 >> 따라서 텍스트 상자를 표시 되지 않도록 강조 표시 된 코드를 포함 합니다

>> 정확 하 게 저장 하는 경우 강조 표시 된 코드 없이 오류가 발생 하 고 난 말하자면 "왜 그럴까요? 그 이유는 "? 따라서 이제는 디버깅 따라서 디버깅 하는 몇 가지를가지고 있습니다 우선, 때문에 이것은 새로운 세트 난 구성을 만들 수 있어 따라서 클릭 해 서 "추가 "구성 시작 하 고 Visual Studio의 코드 생성 기본값의 전체 집합 다른 환경의 Python을 디버깅 합니다

관련 된 것 우리는 다음과 같습니다 예를 들어가 Python Django입니다 따라서 "Runserver", 역할 및 제공 것이 오른쪽 명령 디버거를 실행할 수 있습니다 이제 하루만 추가 기능 하고자 Django 자체 내부 디버깅 합니다 >>는 훌륭한 입력을 시작 하 고 여기 자동 완성에는 여기와 약간의 설명서입니다

>> 예, 그 슈퍼와 내가 안 것 때문에 표준 디버그 해야 합니다 에 있는 항구를 찾는 것 I 반면 자동 완성 없는 경우는 할 일 하 고 내가 원합니다 설정 하려면 "true"입니다 때문에 "False"가 되는 경우 코드를 직접 디버깅할 수 있습니다 >> 확인 합니다 >> 사이트에 서 있지만 패키지와 거기에서 디버깅 합니다

죄송 하지만 하겠습니다 "Admin" 파일입니다 이제 디버깅 합니다 따라서 내 오른쪽을 저장 되지 않으면이 있습니다 전 모델 관리 이 오류는 형태로 "ModelAdmin"에 하고자 합니다 따라서이 작업을 수행할 수 있습니까 내가 마우스 오른쪽 단추로 여기을 클릭 하 고 에 "정의로 이동"

이것은 파일을 엽니다 Django 내부 "사이트 패키지입니다 Django Contrib 관리자 주 파일인 Optionspy " 기능

>> 무엇을 알 수 있습니다 등의 내부에서 진행 합니다 >> 예 어 머 낮은 만큼 무엇을 찾고 여기 특정 기호가입니다 따라서이 "메뉴 명령은"을 사용할 수 있습니다

즉, 검색으로 바로 가기 정확한 위치에 대 한 파일을 찾고, 검색 하 고 "변경 폼 보기" 이것은 Django 보기 " 처리 하는 기능 " 등록 해당 폼을 전송 하면 됩니다 따라서 여기에 아래 모델을 저장 하는 위치 유효한 경우에 말할 수 있습니다 하지만 분명히 "모델" 발생 하지는 확인 하고자 합니다 따라서 난 단지 여기를 클릭 하 고 추가할 수 있습니다 중단점에는 "관리 코드 Django"와 그런 다음 내 디버거를 실행할 수 있습니다

걱정, 그만 하겠습니다 단지 1 초 생각 했기 때문입니다 >> 따라서는 몇이 다양 한 구성 없습니다 있는지 확인 하려면 하나는 우리의 Django을 선택합니다 >> 당신은 아주 영리 하 군, 좀 봐

지금 내가 한 선택 중지, 걱정입니다 선택 했으면 이제, 모양 현재 파일에서 실행 하면, >> 권한입니다 >> 통합된 터미널 그건 전혀 우리에 게 나아지지 않을 그래입니다 Django를 선택 했는데 >> 그래입니다

>> 프로필을 원하고 "실행" 페어 프로그래밍의 경우에 훨씬 더 효율적입니다 >> 절대적으로 >> 확인, 화려한입니다 시작 해당 서버를 실행된 하지만 내부 디버거를이 막대 아래에 활성화 한

>> 오렌지입니다 >> 오렌지입니다 >>입니다 예 디버거가 활성화 되어 있습니다 >> 확인 합니다 따라서 우리가 간다 폼에 다시 오류가 발생 한 알 수 있습니다

갑작스럽게 모두, 하는 중단점이 적중 되 고 검사할 수 있습니다 여기, 우리는 즉 터미널 결과 보여 주는 실행된 "서버"입니다 내가 방금 하지만 전환 "디버그 콘솔"에 그런 다음 내가 검사할 수 있습니다, 내가 좀 더 완료 하는 데 따라서 내가 구문을 검사합니다 코드 조각 폼입니다 된 데이터에 바인딩된 전송 했습니다 "유효한 알 수 없음"입니다

따라서 살펴보겠습니다 폼이 유효 하 고 없습니다 따라서 오류입니다 따라서 어떤, 중단, 하지만 보시 죠 "Form

Errors"를 보자 >>를 것인지 알려 주십시오 폼을 사용 하 여 잘못 된 것입니다 >> "강조"는 등의 강조 표시 된 필드의 요구를 수 있도록 우리가 할 예상한 때문에 필요 합니다 설정할 모델 중 안전 합니다 >> 권한입니다

>> 등을 확인 합니다 지금은 하 사항은, 이제 무엇 인지 알고 있습니다 이제 방금 디버거를 중지 하 고 돌아가 "Adminpy" 이 과거를 작업을 다음

>> 예 >> 때문에 "읽기 전용으로 추가 필드"와 우리는 로 설정 하는 것 튜플 모듈도 하 추가 "강조"를 "읽기 전용 필드" 그래? >> 유용 합니다 >> 현재로 돌아올 것 "터미널" 우리를 수 것 "RunServer" 자신 합니다 >> 버그를 확인이 있습니다

>>도 합니다 >> 예 >> 보시 죠 따라서 I 때문에 폼을 다시 해야 합니다 디버깅의 경우 내 난 저기, 바로 여기에 몇 가지 코드를 배치 합니다

줄 번호를 예, 왜 하지? 나에 게 제공 합니다 여기, 이 강조 상자 더 이상 나타나지 않습니다 우리는 "읽기 전용에 대 한 때문에 "필드는 문제가 되지 않습니다 >> 저장 하는 경우? >> 따라서 나 저장할 수 있습니다 잘돼요

>>이 람 >> 오른쪽 및 어쨌든 지금는 사용 하는 방법의 예 Visual Studio 코드에 디버거 코드를 살펴보고 파악 하 고 버그 문제가 무슨 >> 그건 설정 하기 어렵습니다 따라서 오늘날 우리 배운 Python에 Azure 금요일에서 Visual Studio 코드입니다 다음 에피소드에 배울 방법 Azure 응용 프로그램 서비스에이 배포 합니다

[음악]

Python on Azure: Part 4—Running serverless Django apps with Functions | Azure Friday

>>이 마지막 에피소드의에서 우리의 네 계열에 Python와 Django Azure에서 Carlton Gibson 탐험가 보여주실 Python 앱을 실행 하는 방법 Django에서 사용 하는 방법을 하는 서버 없이 Visual Studio 코드 Azure 함수 Azure 금요일에 오늘 [음악] >> 친구와 Pythonistas 금요일 Azure를 시작 합니다

Nina Zakharenko 필자는 클라우드 수석 개발자 Microsoft에서 대표자 Carlton Gibson로 오늘 여기 나와 함께 그는 동료 Django도 Django의 유지 하는 관리자로 Django Rest 프레임 워크와 많은 다른 패키지는 적이 있을 것입니다 마지막 몇 에피소드에서 우리가 지금까지 얘기 하 고 개발 하는 방법에 대 한 Django 응용 프로그램 X 코드를 배포 Azure 응용 프로그램 서비스 오늘날, 잔소리 하는 것 매우 인기 있는 주제 서버 Carlton입니다

>> 확인, 화려한입니다 Nina를 감사 합니다 따라서 Microsoft Azure 서비스 제공 하는 함수 자 냉각? 따라서 먼저 해요 마십시오 VS 코드로 이동 하 고 기능 확장 및이 만들 수 있게 합니다 새로운 기능 응용 프로그램입니다 명령, 위로 당기면 함수에서 입력 새 함수를 만들 수 있습니다

새 프로젝트 만들기 프로젝트 기능 모든 것을 실시할 수 있습니다 함수를 샀 구나 여기서 만든 프로젝트입니다 난 이미 초기화 이것은 VS 코드에서 프로젝트 실행 됩니다 모든 것 드립니다 >> 우수 합니다 >>를 좋은

어떻게 그러나 할 일 함수를 만들어 보겠습니다 그래? 폴더를 선택 하 고 함수 템플릿을 선택 합니다 잘 보겠습니다 HTTP 트리거를 사용 하 여 때문에 Django 메모 합니다 기능을 제공 하 고 잘 바로 이맘때 그 HTTP 트리거 세밀 하 게 합니다

익명 가자 끝내 주 네요 그래 우와,이 이 코드를 만듭니다 >> HTTP 트리거 기능 이란? >> 자는, 기본적으로 어떤 그렇게 웹 끝점을 만드는 것은 웹 요청을 타면 되 고 웹 응답을 반환 합니다

>> 유용 합니다 아주 간단 합니다 >> 예, 아주 간단 합니다 따라서 우리 일어나 고를 볼 수 있습니다 함수를 여기에 비트는 main 함수가 고 볼 수 있는 걸리는 함수 HTTP 요청 하며 함수 HTTP 응답을 반환합니다

그래? 여기에 요청에 우리는 모든 것 할 수 있는 매개 변수 쿼리 문자열에서을 가져옵니다 이름 그대로 우리 이름을 입력 하지 마십시오 합니다 이름을 전달 하십시오 표준 작업에 는입니다 단지 한번 보시 죠 따라서 우리에서 열 수 셸 이제 방금 로컬로 실행 하십시오

>> 지금 방금 "func 호스트"에서 입력 한 있습니다 >>은 예 명령줄 도구와 하려는 경우 그렇게 할 수 있습니다 작업을 실행할 수 있습니다 호스트 기능을 실행할 수 있습니다 작업 명령을 사용 하 여 볼 수도 있는 에 갔습니다

>> 유용 합니다 항상 옵션 좋은 것 >> 예 이것은 지금 실행 하 고 방금 만든 것입니다 일은 미안 여기에

보시 죠 아, 이름을 전달 하십시오 쿼리 문자열에서 또는 요청 본문입니다 이제 이름을 사용해 서는 이름, Nina를 것과 같습니다 "Hello, Nina"가 표시 됩니다 >> 안녕 Azure 기능

>> 잘 오 셨 군요! 좋습니다 네, 그건 기본입니다 좀 더 재미 있게 하겠습니다 이 종료 해 드리죠 인터프리터 있는 중지 합니다

다음에 취할 수 디버그 작업 패널 여기입니다 Python에 연결이 옵션을 선택 했습니다 옵션 기능을 수행 하 고 우리가 시작 하는 하는 시작 되는 동안, 통해 어떤 준비를 하겠습니다 숨겨 보겠습니다

확인 하므로 코드에 있는 경우 닫은 경우 이 함수 서버 없이입니다 이었던 것이 작성 하는 것은 매우 간단 우리는 조금 다릅니다 이제 아래로 조사 여기에 함수입니다 역시 main 함수가 없습니다 기본값은 함수 HTTP 요청에 하 고 HTTP 응답을 반환 합니다

그래? 응답을 얻기 이 Azure에서 응용 프로그램 개체 하는 AzureWSGIHandler입니다 이제 WSGI 무엇입니까? WSGI 표준 Python은 웹 서버 응용 프로그램 프레임 워크입니다 따라서 그 의미 웹 서버 게이트웨이 인터페이스 공통 게이트웨이 처럼 인터페이스를 CGI 발전 했습니다 가장 큰 장점은 WSGI 및 모든 Python 웹이 프레임 워크 사용합니다 Django WSGI를 사용 하므로 WSGI 응용 프로그램이입니다

Flask, 영역, 모든 WSGI 됩니다 따라서 사용 하는 경우 WSGI 응용 프로그램 우리 하 고 함수를 사용할 수 있습니다 함수에서 Python 웹 프레임 워크입니다 여기에 목표입니다 이제, 이것은 매우 초기 프로토타입 하지만 알아 할 일 마무리 나머지 프레임 워크 자습서 프로젝트를 사용 하 여 이 필자는이 래퍼 지정 하 고을 함수를 제공 합니다

그래 >>를 놀라운 >> 그렇게, 디버거 실행 중입니다 서버 API입니다 저장 합니다

아, 그리고 즉 지금까지 하 고 실행 합니다 보시 죠 하 고 여기서 확인 해야 합니다 그래 Localhost 것 2 잘 했어요

항상 잘못 된 URL을 오 셨 군요! >> 우리 중 대부분에 발생 하는 것 >>이 발생합니다 권한입니다 이제, 이 적중 되는 중단점 내 >>를 멋진 >> 우리는 모양을 가질 수 있습니다

우리는 여기에 이제 스텝 오버 이렇게 한 단계씩 보겠습니다 Azure 응용 프로그램입니다 그래? 초를 제거 하겠습니다 1 초이 여기에 있는 AzureRequestAdapter입니다 Django 하지 않습니다 하기 때문에 Azure 요청을 수행 합니다 >> 권한입니다

>> WSGI 요청 됩니다 그렇다면 어떻게 해야 어댑터를 매핑하는 에 Azure 요청 Django는 뭔가 이해 하는 WSGI 요청 합니다 따라서이 통해 우리 환경입니다 매개 변수는 사전 환경에서 그런 다음 다른 항목에 해당 하는 WSGI 응용 프로그램 요구 사항 호출할 수 있는 응답을 사용합니다 요청 헤더에 걸리는 따라서 응용 프로그램을 때 데이터를 반환할 준비가 되었습니다

StartResponse를 호출 하면 헤더를 사용 하 여 기본적으로 따라서 우리가 활용이 Django 응답입니다 이제 디버그를 당기면 콘솔에서이를 볼 수 있습니다 >> 꽤 아직 제 생각에는 하나를 실행 해야 합니다

>> 당신 말이 맞습니다 잘 했어요 감사합니다 난 항상 그 실수를 확인 합니다 중단점 도달 합니까 선 후 계산 됩니다

여기 있어요 좋아, 이제 내가 볼 자동 완성 합니다 화려한 찾습니다 그래 Django는 것은 고 응답 거 야 모든 속성 Django 응답입니다

전 내용 콘텐츠는 무엇입니까? 큰 긴 HTML 문자열로 것은를 Django 프레임 워크에 의해 반환 된 응용 프로그램을 다시 실행입니다 이제 구현 여기에는 중단점입니다 다음 방문을 계속 수행 합니다 우리가 여기에서 발전 하 고 있으므로 우리는 어떤 우리는 응답을 반환 하기 전에 수행 합니다

다시 매핑할 필요가 Azure는 반응 Django 응답은 WSGI 응답와 우리 원하는 HTTP 응답 기능 여기에서는 단지 맵 우리와 다시 얻을 Azure 응답 되 고 다양 한 속성 매핑 적 특성 Django 응답의 기능 고 우리 반환 합니다 >> 구현한 여기 Django에 대 한이 매퍼 것이 아니라 간단 하 게 구현에 대 한 모든 다른 Python 웹 프레임 워크? >> 예 따라서 래퍼 작업 진행 됩니다 >> 그래입니다

>>는 막을 수 있는 프로토타입 Django 서비스를 함수를 가져옵니다 WSGI 응용 프로그램을 얻을 수 있을까요 서비스 제공 기능? 네 Django 응답을 사용 하 고 여기 하지만 예 우리 수 있습니다 Flask 모이고 우리가 수 있습니다 이 고 있는 제네릭 WSGI의 목표 시간으로 계속 해 서

어쨌든 지금 그건 프로토타입입니다 우리는 응답을 반환 하 고 우리가 방금 실행 한 다음 이것이 응답 하는 다시 매핑된 가져옵니다 우리는 어떤 함수 응답은 돌아가서 지금 조금 계속 합니다 >> 예, 확인해 보겠습니다 하는 모습 >>는 동일한 응용 프로그램 같은 응용 프로그램 우리가 지금까지 사용한 전체 시간이 있지만 이제 기능 서비스 제공 됩니다

이제, 우리는, 배포할 수 있습니다 아웃, 그럼 바로 우리가 선택할 수 및 기능을 배포 합니다 하지만 이미 준비를 잡아 먹던 여기 있어요 아, 이제 올바른 URL 나갈

>> 그래입니다 >> 하면 됩니다 다시, 같은 응용 프로그램 우리가 지금까지 사용한 전체 시간 이지만 이번 기능에 배포 합니다 >>를 놀라운 오늘날, Azure 금요일에 우리가 배운 Django 서버 응용 프로그램 Azure 함수입니다

Carlton, 오는 해 주셔서 감사 합니다 Azure 금 및 교육 Azure에서 Django에 대 한 미국입니다

Python on Azure: Part 2—Deploying Django services to Azure Web Apps | Azure Friday

>>이 두 번째 에피소드의에서 우리의 네 계열에 Python Django와 Azure Carlton Gibson 탐험가 가져오는 방법 표시 Python 앱 편성의 클라우드 Azure 응용 프로그램 서비스를 사용 하 여 에 통합 되어 있는 Visual Studio 코드 Azure 금요일에 오늘 [음악] >>이 봐 친구, Pythonistas, 또 다른 에피소드를 시작 합니다 azure 금요일

내 이름은 Nina Zakharenko 클라우드 수석 개발자 Microsoft에서 대표자 나와 함께 Carlton Gibson 오늘이입니다 그는 Django 동료 Django에 대 한 유지 관리자 다른 프로젝트의 많은 함께 아마도 사용한 금요일, Azure의 마지막 에피소드 Carlton 도움이 어떻게 Visual Studio 코드 Python 앱을 개발할 수 있습니다

오늘날의 에피소드에서 우리는 하는 방법에 대 한 설명 이러한 응용 프로그램을 배포 합니다 Azure 응용 프로그램 서비스입니다 >> 확인 합니다 Nina의 감사 그렇다면 여기서 우리는 프로젝트를 열고 있는데 조각 app 이기는 마지막 에피소드에서 사용 했습니다

Azure에 배포 하려면 먼저 Azure 일부 확장 해야 합니다 따라서는 Azure 확장 와 특정 비밀 번호 응용 프로그램 서비스에 대 한 우리는 다른 것 이며 저장소를 살펴볼 것입니다 >>를 설정 해야 합니까 이러한 확장 응용 프로그램? >> 확인 합니다 따라서 얻을 것 "확장" 탭에서 Azure에서 입력 검색을 진행 하 고 하 고 서로 다른 것입니다 >> 확인 합니다

>> 그렇게,이 비디오에 대 한 관련 응용 프로그램 서비스 준비 1과 1 저장 하 하 하 정적 파일에 사용 합니다 따라서, 시작 해 보겠습니다 일부 명령은 표시를 하겠습니다 입력 하는 경우 그냥 "시프트 때문- P 명령"고 나타납니다 >> 명령은 전원

>> 예, 명령 전원 거칠 수 있도록 하 사용할 수 있는 모든 명령이 있습니다 따라서 "응용 프로그램을 입력 한 서비스 "으로 필터링입니다 새 웹 응용 프로그램을 만들어 보겠습니다 그래 따라서 먼저 전역적으로 고유한 이름입니다

Azure, 가자 아, 하는 존재합니다 데모, 이제 응용 프로그램 호출 안 돼 권한입니다

그래 네 괜찮아요 좋아요 Linux를 사용 하는 것 Python 확인 하겠습니다 우리가 사용 하 고 있는 Python 37 미리 보기입니다

그래 그럼 바로 잠시 동안 스핀 수 있습니다 그렇지 않으면 한 동안 오 여기에 한 가지를 수행 해야 합니다 단지 그 이름을 변경 해야 합니다 그래

관련 될 것입니다 나중에 그래 따라서이 완료 됩니다 이 응용 프로그램을 만들었습니다

식의 말은, "웹 응용 프로그램을 배포 합니다" 여기서 먹은 아니요, 지금 당장 해야 합니다 이유는 무엇입니까? 때문에 이러한 구성 해야 합니다 Django 응용 프로그램에 배포할 때 데이터베이스가 있는지, 정적 파일에는 이러한 것 들입니다 먼저, 해당 설정 한다 이제 클릭-오 no, 패스가, 그렇게 배포 되지 않은

따라서 하는 방법을 배우게 됩니다 남겨 두는 것 와 같은 것으로 [들리지 않음] >> 어쨌든 하려고 하는 >> 예,가 그 동기화 기능에

좋습니다 그래 따라서 첫 번째 일을 하 고 싶습니다 저급 하기만 게시물에 대 한 찾아보기 클릭할 때 이 다른 응용 프로그램을 포털에서 열 수 있지만 내가 그걸가지고 있지만 이미 로드 여기 Azure 응용 프로그램입니다

따라서이 링크를 클릭 것 같아 여기는 말, "자원 그룹" 리소스 그룹은 같은 관련된 항목의 컬렉션입니다 수 있는 폴더와 비슷합니다 모든 요소를 준비 합니다 다양 한 작업을 볼 수 있습니다

말 이죠 여기에 있습니다 Postgres 인스턴스를 접수 했습니다 Azure 데이터베이스는 무엇입니까 PostgreSQL 서버와 저장소 계정을 준비 하 고 정적 파일입니다 그 안에 되 겠 특정 컨테이너 거는 것은 무엇입니까 우리의 정적 파일을 >> 소리 대왕입니다

>> 확인 합니다 따라서 필요한 것입니다 이 문제는 어떻게 우리가 응용 프로그램을 설정 하려면? 따라서 숨겨 보겠습니다 여기에 오는 경우 파일을 이동 하 고 한 예제로 이동 합니다 그래

에 대 한 템플릿 파일입니다 데 필요한 모든 설정 응용 프로그램을 구성 합니다 1 ~ 3 개의 것은 Django 배포 합니다 데이터베이스 설정 설정에는 정적 파일 것을 Django 설정 모듈 고 이름을 업데이트 하면 됩니다 그거에요

따라서 우리가 설정 하는 방법은 해당? 터미널 표시를 해 드리죠 마찬가지로 내가 방금 사용 바로 가기 레이어 컨트롤에 다시 하지만 메뉴 명령을 사용할 수 있습니다 그런 다음 모두 합니다 내 환경에 이러한 비밀 하 게 사용할 수 있습니다 따라서 여기를 할 여기에 셸 마법의 사용 되는 비트입니다

따라서 무엇을 해야합니다 환경 변수를 내보냅니다 따라서 하 전달 하 모든 자식 프로세스입니다 발생 하 여 grepping, 우리가 줄을 제외 해시를 사용 하 여 시작합니다 >> 주석 때문입니다 >> 있기 때문에 추가 정보입니다

그런 다음 수행 하려는 모든 파일을 즉 azure 데모- >>는 비밀을 유지 하 >> 위치는 데모, 내가 거는 비밀을 지키는 것입니다 그건 파일에서는 열려 있는 것이 고, 오른쪽? >> 그래입니다 >> 다음 전달 하는 xargs로 합니다 수행 하는 모든 배치 하는 한 줄으로 된 비밀 다음 전달할 수 있는 내보내기 명령

>> 유용 합니다 >> 확인 합니다 에 의견은 작업은 최고입니다 그래 따라서 이러한 설정합니다

이제 데이터베이스를 만들고 몇 가지 단계가 있습니다 리소스 그룹 준비 위치, 준비 직접 스크립트를 작성 하지만 높이 데 여기에 사용할 수 있습니다 따라서 단순히 최소화 하겠습니다 1 초입니다 이 스크립트를 통과 우리는 다양 한 단계 설명 하 고 실행 해 보겠습니다

한 번에 단계 1 >>이 매우 유용합니다 >> 도움이 됩니다 이러한 설정으로 환경 변수 하면 작동 합니다 그렇지 않으면 다음 버그는 repo 파일 크기가 고도 들도 처리 하겠습니다 것입니다

따라서 저장소에서 수행 하는 db를 작성 하겠습니다 만들 하 시겠습니까 Postgres 서버? 아니오 대답을 이미 배웠던 때문에 해당 서버를 볼 수 있지만 "예"를 클릭할 수 있습니다 따라서 서버를 만들고,이 명령을 하 고 관련 변수를 가져와서 환경에 바로 우리를 설정 합니다 >>이 명령을 실행 하면 Azure CLI를 사용 하 여? >> 그래입니다

따라서이 "az" 명령 Azure CLI는 아니며 수를 결정 하는 많은 옵션을가지고 놀라운 있기 때문에 전체 시각은 CLI를 통해 스크립팅할 수 있습니다 따라서, 어쨌든 보겠습니다 터미널 잡아당깁니다 여기에 "아니오"를 클릭 하겠습니다 이미 있는 때문에 방화벽 규칙을 만듭니다

정확히 말하면 아니오, 때문에 난 이미 그렇게 하 고도 하지만 빠르게 살펴 보시 죠 따라서 아래로 스크롤합니다 만들 수 있습니다 방화벽 규칙 및 것은 Azure IPs에서 액세스를 허용 합니다 수 있도록 원하는 해당 IP에서 액세스 유용한 단계는 따라야 하는 것입니다

하지만 생각 대로 내가 설정 되어 있습니다 따라서 클릭 것 같아 "No"에 그 하지만 DB 응용 프로그램을 작성 하 시겠습니까? 네 그래 보겠습니다 DB 응용 프로그램을 만듭니다

예를 실행 하기 전에 빠르게 확인을 하기만 합니다 다시 Azure 명령만 사용 Postgres DB 만들기 올바른 값을 사용 하 여 응용 프로그램 DB 이름 변수를 사용 하 여 우리가 우리의 환경에 넣습니다 >> 야 모든 격리 응용 프로그램 데이터를 표준 Postgres 서버? >> 예 그래 따라서 Postgres 서버 데이터베이스가 여러 개 있을 수 있습니다

응용 프로그램의 필요 특정 데이터베이스 서버에 있습니다 >> 권한입니다 >> 확인 합니다 따라서 "예"를 실행 해 보겠습니다 다시 한 번 생각해 두 번째 2

따라서이 데이터베이스를 만듭니다 다음, 그 후 에 연결할 수도 있습니다는 바로 알아보고입니다 안 돼 데모를 얻을 그 버그를가지고 있습니다 안 돼

작업 환상적인 벌금입니다 그래 >> 데모 good 이지만 [들리지 않음] >> 대 한 시점입니다 많은 이동 됩니다

이 기능 덕분에 정규화 된 도메인 이름입니다 있으면 그 값은 해야 하는 압축을 풀고에 여 호스트 파일 설정입니다 때문에 Django 설정에서 실제 서버가 필요 연결 하는 데 있습니다 >> 권한입니다 호스트 이름입니다

>> 예, 호스트 이름입니다 >> 확인 합니다 >> 확인 합니다 따라서 되도록 했다 여기에 의견을 아래에 PSQL 명령 하는 실행할 수 있습니다

가 된 경우 사용자 환경 설정 실행할 수 있습니다 해당 데이터베이스에 연결 새로 만든 PSQL을 사용 하는 데이터베이스입니다 어쨌든, 그 파일은 >> 예 필자는 매우 유용 합니다 파 해야 주위 무슨 볼 >> 예

많은 내 말은, 만드는 단계 Postgres 서버 따라서 해당 스크립트에 유용 합니다 그래 따라서 이제 모든 것을 했다합니다 몇 가지 멋진 기능을 실시할 수 있습니다 따라서이 터미널을 극대화 하겠습니다 그래

따라서 우리가 필요한 할 일? 연결 해야 합니다 이주를 살펴봅시다 데이터베이스, 준비 하지만, 비어 있거나 이어야 합니다 그래 목록은 여기서 볼 수 있습니다

Django 마이그레이션을 하는 항상 적용 해야 하지만 그 중 적용 되었습니다 따라서을 변경해 보겠습니다 환경에서 설정 하기 때문에 연결할 올바른 모든 변수 프로덕션 데이터베이스에 이렇게만 VS 코드 내에서 >> 따라서는 프라임 것 입니까 프로덕션 데이터베이스? >> 그래입니다 실행 되 고 마이그레이션입니다

그래 >>이 몇 초가 걸릴 뿐 아니라 >>에서 살펴본입니다 녹색 okays의 동안입니다 >> 예 >> 모든 것이 작동 하는 방법입니다

>> 예 좋아, 해냈다 우리가 실행 한 다음, 우리 것을 나타낼 수 있도록 마이그레이션 이러한 작업을 다시 하려는 경우, 생각 되 나, 하지만 다음 준비 하 고 여기에 작은 스크립트 단지 일부 설비를 로드합니다 이 실행 해 보겠습니다 우선 데이터베이스를 플러시합니다

케이스는 데모 응용 프로그램입니다 따라서 때로는 다시 설정할 것 >> 멋진 >> 하면 모든 데이터를 제거할 수 있습니다 로드 됩니다

사용자 설비 및 설비 조각입니다 따라서 적어도 무언가 배포 하는 경우는 없어 이것은 멋진, 모든 것 이 코드 VS >> 예 >> 하지 않았습니까 어디서 나는 것

따라서 한 1, 2 3/Django 배포 구성 수행한 작업의 데이터베이스입니다 >> 그래입니다 >> Collectstatic입니다 >> 그래입니다 >> 확인 합니다

따라서 이렇게 하려면 다시 이제 managepy collectstatic입니다 >>는 모든 사용자 들에 게는 어쩌면 너무 익숙하지 Django, clickstatic의 기능은 무엇입니까? >> 확인 합니다 따라서 clickstatic를 수집 모든 정적 파일이 나 JavaScript 또는 이미지 또는 CSS 파일을 사용 하므로에 넣습니다 알려진된 위치에 대 한 웹 서버를 배포할입니다

경우에이 컨테이너 Azure 저장소 >> 유용 합니다 >> 리소스 그룹에 따라서 처음에 살펴본 했습니다 있는 스토리지 컨테이너 계정입니다 따라서 컨테이너를 작성 하 고 clickstatic에 연결 합니다 해당 컨테이너 업로드 하 고 있습니다

따라서 요청한 정적 파일에 수집 합니다 대상 위치 설정에서 지정 합니다 계속 하 시겠습니까? 예, 정말 계속 하려는지 않습니다 >> 우리 들 개요 설정 하는 방법에? >> 예, 자, 우리가 무엇을 할 수, 그러면 확장에서 계산 Blob 컨테이너를 고민 하 고 로드 및 연결 네트워크를 사용 하 여 눈에 띄게 두 번 쪽 이에요 따라서 데모 컨테이너는 인에 대 한 우리의 컨테이너 결과 봐 이것은 Django의 볼 수 있습니다

업로드 되는 정적 파일입니다 들의 이름에 >>를 정말 멋진 >> 예, 이므로 이렇게 하면 우리 것과 모두를 새로 고쳐야 합니다 >> 따라서 수행할 수 있습니까 파일 확인? >> 그래입니다

>> 수 기능 없어에서 보입니까? >> 그래입니다 수 두 번 클릭 하 고 가 다운로드 되 고, 최소화 하기 위해 필요 합니다 것 들을 표시 했다입니다 봅시다 방금 제거, >> 오, wow >>이 유효 하다

따라서 이 밖의 위해 왔습니다 보다 생산 스토리지 컨테이너입니다 실제로 확인을 하는 경우 아마 여과 같이 확실히 모르겠습니다 실제로 >> 그래입니다 >> 따라서 수 있습니다 업로드 합니다

음, 예, 업로드 하겠습니다 따라서 수 있을 뿐만 아니라 우리 정적 파일에서 볼 프로덕션 환경 우리 청 하 하 게 편집할 수 있습니다 >>는 많은 경우에 있었을 것입니다 매우 유용 >> 음, 좋아 >>를 개발 경력

>> 그런 예입니다 때로는 의미 하 고, 올바른 있습니까? >> 그래입니다 >> 우리 모두 생 신 위치 FTP에 있어야 합니다 그럴 필요가 바로 액세스할 수 있기 때문에 "편집기" 합니다 >> 것 처럼 보일 수 따라서 사용자는

>> 예 하지 않는 것이 고 사용 하 게 될 서버에 남아 있는 있습니다 종료 하는 방법을 기억할 수 있습니다 정적 파일은 무엇입니까? Clicksatic의 말 159는 정적 파일을 복사 합니다 >> 확인 합니다 >> 따라서 작업을 종료 했습니다 따라서 닫아 보겠습니다

보고 싶지 입니다 하나 2, 3/Django 배포입니다 >> 그래입니다 >> 데이터베이스를 수행 하는 정적 파일입니다 따라서 실제로 문제가 됩니다

응용 프로그램을 실행 합니다 따라서 여기 해당 azurepy입니다 프로덕션입니다 설정 파일입니다

내가 알 수 있습니다이 우리 때문에 환경 변수 사용 그 안에 없는 비밀이 있었습니다 따라서 우리가 가져온 기본 설정 파일이 나 모든 것을 이제 그건 대부분 귀중 한, 그 괜찮습니다 당분간 당연히 생산에 디버그, false로 설정 되어 있습니다 >> 권한입니다 >> 다음 정적 파일 저장 Django 저장소 사용 하 여 유일한 스토리지를, 다음으로 정적 파일을 제공 하는 것입니다

원격 저장소 URL에서 계정 이름을 부여 했습니다 우리 컨테이너 이름 및 계정 키입니다 >>는 입니까? >> 것입니다 그건 들 세 가지 자격 증명 해야 할 것 암호 파일에서 정의 합니다 다음은 데이터베이스에 대 한 postgres URL 설정 응용 프로그램 DB 이름을 지정 했습니다 사용자는 사용자 암호 암호 및 호스트 이름입니다

반드시 여기를 이 옵션의 SSL 모드 필요 합니다 >> 권한입니다 >>으로 설정 되어 있는 연결에 대 한 기본 및 사용자를 해제할 수 없습니다 하지만 이러한 설정 경로 지정 하지 >> 그래입니다

>> 장소에 따라서와 우리를 배포할 것 같군요입니다 >> 그래입니다 >>는 단지 한 가지 우리가 할 일, 응용 프로그램 서비스 지시 해야 값을 비밀 환경에 대 한 Django 응용 프로그램입니다 때 로컬로 실행 하는 셸에서 이러한 준비 합니다 알려야 하지만 응용 프로그램 서비스입니다

따라서 다른 스크립트를 만들어 보았습니다 그렇게 도와주 >>는에 살펴보겠습니다 스크립트 있을 뿐만 아니라 몇 가지 다른 이러한 변수를 설정 하는 방법 포털에서 작업할 수 있습니다 >> 예 >> 당신은 심지어 할 수 있습니다

VS 코드입니다 >> 당신은 할 수 여기 따라서,이 열겠습니다 하나씩 추가할 수 있습니다 응용 프로그램 설정 >>,가 면은 거 실제로 거기에 나열 됩니다 편집할 수 있습니다

>> 예 >> 파일을 삭제 합니다 >> 예, 멋진 기능이 있으므로 내가 스크립트, 하지만 서 내가 해야 합니다 따라서 목록이 같습니다 필요한 설정 키 설정 한 다음 여기서 서식을 지정 해야 합니다

키 값으로 쌍 및 다음 우리는 만들려면이 명령을 하 고 내가 한 여기에 대 한 참조에 대 한 링크를 받았습니다 따라서에 대해 다시 생각해 되 고, 터미널 응용 프로그램 서비스를 함,이 전송 이동 합니다 >> 그를 실행 하기 전에 종료 하 시겠습니까 응용 프로그램 설정 탭? >> 네, 왜 하지 따라서 업데이트 설정 하 고, 예, 그렇게 하겠습니다 >> 예

>> 따라서 어떤 스크립트 가 것은 정의 된 모든 설정 업로드 하 고 응용 프로그램 서비스 스크립트가 작동 하지 사실을 확인 하는 것 환경 설정 하지만 경우를 확인 하지 않습니다 적절 한 값을 설정 합니다 >> 권한입니다 >> 따라서을 것입니다

이제 준비가 끝났습니다 하며 준비가 됩니다 따라서 매직 도달할 수 및 동행, 아니요, 거의 한 가지를 수행 해야 합니다 구성 해야 배포 원본입니다 >> 권한입니다

>> 좋아 하겠습니다 로컬 게이트를 설정 합니다 수행 하는 것은 | 바로 | Git Repo는 와 Git Push를 않습니다 응용 프로그램 서비스까지 응용 프로그램 서비스 합니다 우리의 요구 사항 파일 가상 환경 구축 우리의 요구 사항을 파일을 사용 하 여 부트스트래핑 응용 프로그램을 시작 [들리지 않음] 뒤 실행 합니다

>> 유용 합니다 >> 오른쪽를 슈퍼 따라서, 지금 말한 것입니다 다음 웹에 배포 될 예를 누릅니다 당분간를 건너뜁니다

항상 하 라는 동일한 배포 하려고 합니다 생략 하겠습니다는 두 번째 그가 수행 하 고 있습니다 체크 표시 상태를 출력 따라서 보겠습니다 제거 하 고 하는 경우 출력 창 왔 소 >> 예

따라서, 무언가 I 약간 혼란 발견 >> Azure 응용 프로그램 서비스입니다 >> 시작 했을 때 Visual Studio 코드를 사용 하는 출력 창에 대 한 하 내가 알아차리지 못하는 것이 거의 오른쪽에 드롭 다운 됩니다 >> 예 올바른 확인 합니다 >> 따라서는, 다른 >> 때문에 또한 >> 출력 합니다

>> 확장에서 작업의 예 Python 확장에서 게이트 Docker에 진행할 너무 중요 해 어쨌든 지금 greedy Docker 하지만 예 >> 하 게 유지 하기 위한 정답은 한다고 생각 합니다 >> 예 방금 가져옵니다 터미널에 있습니다

여러 개 있을 수 있습니다 터미널 실행 다시 수 있습니다 혼동 하거나 취소할 수 있습니다 어쨌든, 이것은 배포는 몇 분 때문에 이것이 문제 다른을 열 수 있습니다 여기에 단추 웹 사이트에서 이동 합니다

>> 이건 따라서 구축 하면? >> 예, 이것은 하나입니다 내가 바로 배포합니다 때문에 고 위해서 프리젠테이션 우리가 기다릴 수 없습니다, 그리고 및 다 왔다, 우리의 검색 가능한 api 코드를 사용 하 여 해당 우리가 저 번 비디오 편집 >> 지금 기능입니다 호스팅하는 것? >> 확인 합니다 이것은 Django App 서비스 배포 그건 프로그램 websitesnet입니다

따라서 첫 번째 비트를는 응용 프로그램 이름 >> 권한입니다 >>는 내가 준 것입니다 따라서 두 응용 프로그램 데모 없는 최고 예요, >> 그래입니다 >> URL, 하지만 이상적 프록시를 추가할 수 있습니다 전면이 다음을 사용할 수 있습니다, >> 우리는 사용자 정의 도메인입니다

>> Azure 응용 프로그램 게이트웨이 또는 배치 하는 것 사용자 정의 도메인 앞에 >> 하지만 필요는 없습니다 >> 아니요 예, 이것은 완전히 서비스할 수 즉, 하 고 어떻게 하면 Django 응용 프로그램 배포 응용 프로그램 서비스 >> Carlton, 정말 멋지지 않습니까? 따라서 있습니다 것으로 나타났습니다 우리는 많은 코드가 수행할 수 있는 사람들이 서이 코드를 이 방법을 사용해 스스로? >> 예, 정답입니다 내 포크에 나머지 프레임 워크 자습서 repo의 모든 정보는 필요한 모든 단계를 모든 스크립트는 내가 시연 모두는 없습니다 >> 유용 합니다

>> 제공 하 고 체크 아웃 >> 예, 메모 표시를 확인할 수 있습니다 아래 비디오는 쉽게 링크를 합니다 다음 비디오에서 해요 자동화에 대 한 이야기를 Azure DevOps 파이프라인을 배포합니다 [음악]

The Internet, Web Apps, & Python Flask Explained For Idiots

안녕하세요, Static void Academy의 Brad입니다 오늘 우리는 웹 서버 및 웹 응용 프로그램을 사용하여 우리가 지금 작성한 매체 기사로 당신을 추천하고 싶습니다

매우 큰 기사 우리는 또한 github에서 호스팅되는 저장소를 가지고 있습니다 우리가 참조 할 모든 코드가 포함되어 있다고 가정합니다 계정과 당신은 우리가 당신이 파이썬 3을 가지고 있다고 가정하는 저장소를 복제하는 방법을 안다 pip뿐만 아니라 패키지 매니저와 pip env를 설치했다 당신은 Denver Broncos에있는 3 명의 아미고가 3 대 조립 된 와이드 리시버 이 중 하나라도 설치하지 않았다면 무엇을 기다려야합니다

github 저장소에 readme가 포함되어 있습니다 그들 모두를 설치하십시오 처음 시작할 때 혼란 스러울 것이 많습니다 파이썬 플라스크 로고가 왜 포함되어 있는지 웹 애플리케이션과 웹 서버를 살펴 봅니다 크리스마스 후추처럼 보입니다

복잡한 정의가 많이 나옵니다 그 (것)들에 관하여 그러나 그들의 중핵 웹 애플리케이션 및 웹 서버에 사람들이이 비디오를 볼 수있는 온라인 데이터 또는 콘텐츠를 검색 할 수있게합니다 그것은 어딘가에 youtube 서버에서 호스팅 되었기 때문에 브라우저 또는 뭐든간에 당신은 그것을보고 있습니다 어디서 데이터를 볼 수 있는지 알고 있습니다 웹 서버의 가장 단순하고 멍청한 예에서 텍스트를 가져 가라

당신이 지금 화면에 표시하고 텍스트 편집기에 그것을 입력하고 그것을 저장 as index dot HTML 일단 당신이 그 파일을 저장했다면 당신은 두 번 클릭 할 수 있어야합니다 그리고 당신이 웹 브라우저에 표시 한 HTML이 순수하다는 것을 확인하십시오 우리가 만든 웹 서버의 본질을 증류시킨 다음 지금 발견했습니다 당신은 아마 와우라고 생각하고 있어요 제가 쓴 파일이 놀랍고 굉장하다는 것을 알았습니다

이 매우 간단한 패러다임을 따르기 때문에 실제로 놀랍습니다 전세계 수십억 명의 사용자가 테라 바이트 급의 데이터에 액세스 할 수있게되었습니다 당신의 멍청한 가짜 웹 서버에 또 다른 페이지가 가서 텍스트를 복사하십시오 지금 화면에 표시하고 텍스트 편집기에 저장하는 것은 점 HTML에 대한 것입니다 웹 경로에서 처음으로이 파일을 두 번 클릭하면 알 수 있습니다

이 새로운 파일을 수용하기 위해 브라우저가 다르며 파란색 링크가 표시됩니다 클릭하면 원본 파일로 리디렉션됩니다 개념은 방문자에게 다른 콘텐츠를 제공하는 라우팅이라고합니다 요청한 경로를 기반으로 왜 우리는 경로를 부르지 않습니까? 지금 우리가 만든 모든 것은 우리가 만드는 우리 자신을위한 청소부 사냥입니다 우리가 그것을 찾을 수 있지만, 우리가 전세계에 어디에 알릴 수 있다면 어떨까요? 우리의 데이터에 액세스하려면 웹 서버가 아파치 나 nginx는 정적 파일을 호스팅하는 컴퓨터의 특정 디렉토리를 사용합니다

우리가 작성한 것과 같습니다 외부의 사람들이 컴퓨터에 액세스 할 수 있도록 컴퓨터 현재 화면에 표시된 데이터를 통해 현재 상황에 대한 상위 수준의 다이어그램을 볼 수 있습니다 당신이 그것을 이해하지 못한다면 웹 브라우저가 온라인 콘텐츠를 요구할 때 턱받이를 따라 가지 말고 보통 영어로 요청을 입력하십시오 하지만 로봇은 영어를 말하지 않기 때문에 숫자를 말하는데이 요청은 해당 리소스를 찾을 수있는 IP 주소로 변환되는 DNS 서버 이 IP 주소에 앉아있는 컴퓨터에는 Apache 인스턴스가 있습니다 nginx 또는이 요청을 가로채는 다른 비슷한 웹 서비스가 실행 중입니다

그런 다음 정보를 검색하여 처리합니다 지금 요청하는 것은 당신이 생각하는 것입니다 이해가 가며 매우 간단합니다 항상 더 힘든 소프트웨어 공학에서 더 중요한 교훈을 얻습니다 이 패러다임이 두 개의 텍스트 파일을 가지고 있다면 멋지다고 생각하는 것보다 사이를 클릭하는 데스크톱은 있지만 페이스 북은 정적이라고 생각하십니까? 브렌다라는 이름의 모든 여성들을위한 파일이 정보는 동적으로 생성되지 않습니다

요청이있을 때 이것은 웹 애플리케이션이 우리의 github을 살펴 봅시다 플라스크 웹 서버를 구현하는 Python 파일을 찾을 수있는 저장소 이제 저장소에 포함 된 readme를 따라 가면됩니다 웹을 시작하는 데 필요한 모든 종속성을 쉽게 다운로드 할 수 있습니다 응용 프로그램에 문제가 있거나 아래에 의견을 남기거나 의견이 있으면 동반 미디어 기사는 이제 우리의 파이썬 파일과 처음 몇 라인에서 우리는 단지 상용어 라이브러리 포함하지만 라인 6 우리는 우리의 첫 번째 경로를 정의 슬래시는 우리가 웹 애플리케이션의 근원에 있다는 것을 나타냅니다 이 슬래시로 이동하면 안녕하세요! 너에게 완전히 거짓말을하고 그에게 총을 줘 보자

너는 볼 수있다 이것은이 비디오의 시작 부분에서 우리가했던 것과 매우 유사하다는 것을 정적 HTML 파일을 바탕 화면에 표시하고 해당 예제와 같이 볼 수 있습니다 지금 당신에게 이것의 가치를 보여줄 가치가 없습니다 당신이 여기있는 모든 질문들을 미리 예상해라 Brad는 URL에서 매개 변수를 전달할 수 있습니까? Brad 여러 가지 방법으로 전달할 수 있습니까? URL Brad의 매개 변수를 사용하여 URL에 사용할 방법을 지정할 수 있습니까? Brad는 URL 및 Brad의 매개 변수에 유형 제약 조건을 적용 할 수 있습니까? 이 비디오의 모든 것처럼 3 개의 아미고입니다

그러나 어리 석음의 변화 정도의이보기는 그러나 당신이 대체를 상상하는 경우에 일반 텍스트 이름과 나이가 함께 표시되었습니다 데이터 그래프 또는 스트리밍 비디오를 통해 웹의 힘을 볼 수 있습니다 응용 프로그램이 비디오를 볼 시간을내어 다시 한 번 감사드립니다 그리고 누가 응용 프로그램과 웹을 가지고 있는지에 관한 정보를 얻으시기 바랍니다 서버 및 아무것도 다운로드하는 경우 아무것도 다운로드하거나 달리기 위해 무엇인가를 얻은 다음 계속해서 우리가 가능한 한 빨리 이러한 문제를 해결하고 싶습니다

주간 콘텐츠이므로 보신 내용이 마음에 드시면 새 동영상을 출시 할 때 다시 알려 주시면 알림을 받으실 수 있습니다 브래드 정적 공백에서 당신이 그것을 입력하고 저장해야합니다 그것을 두 번 클릭 할 수 있습니다 나는 정말로 느린 것을 말하고 있습니다 이 바보 같은 웹 애플 리케이션의 일부는 내가 당신에게 링크를 포함 시켰습니다

우리 비디오에서 내 엉덩이가 다시 당신에게 감사하고 이것은 정적에서 무효되었습니다 프랫 오, ​​우리가 괜찮아지기를 기다려

Anvil: A New Way to Build Web Apps

여보세요 내 이름은 Meredydd이고 Anvil에 대해 소개하고 싶습니다

모루는 새로운 것이다 파이썬 이외에는 스택 웹 앱을 만드는 방법 나는 그것을 보여줄 것이다 안전한 대화 형 앱을 구축하여 데이터베이스 저장소 및 사용자 계정을 생성하고 웹에 게시 할 수 있습니다 그리고 우리는하지 않을 것입니다

자바 스크립트 나 HTML이 필요합니다 우리가 알아야 할 것은 기본적인 파이썬입니다 준비된? 여기 앤빌 (Anvil) 편집장에 있습니다 새 앱을 만들고 시각적으로 선택하겠습니다 테마

이것은 여기에 우리의 웹 페이지이며,이면에는 컴포넌트의 도구 상자가 있습니다 그 위에 끌 수 있습니다 우리는 "안녕하세요 세상"앱을 만드는 것으로 시작할 것입니다 당신의 이름을 밝히고 인사드립니다 먼저 패널을 배치하는 것으로 시작하겠습니다

일부 텍스트를 표시하기 위해 Label을 추가하겠습니다 여기 아래 모든 속성을 볼 수 있습니다 선택한 구성 요소의 '텍스트'가 관심있는 텍스트입니다 사용자가 이름을 입력하십시오 이제 내가 할 텍스트 상자를 추가 할 것입니다

마다 구성 요소에는 이름이 있으므로 코드에서 사용할 수 있습니다 우리는 이것을 'name_box'라고 부를 것입니다 클릭하기 위해 버튼을 추가하십시오 그리고 마지막으로 인사말을 표시하는 다른 레이블 우리는 다른 속성을 여기에서 바꿀 것입니다 : 우리는 텍스트를 크게 만들고, 등등

마지막으로, 페이지에 제목을 붙이자 좋은 측정을 위해서 이제 우리는 페이지를 시각적으로 디자인했습니다 이 버튼을 두 번 클릭 할 수 있으며 지금은이 때 실행되는 코드를 편집하고 있습니다 버튼이 클릭됩니다

모든 페이지는 파이썬 클래스이며 모든 방금 배치 한 것들은 인스턴스 변수로 접근 할 수 있습니다 우리는 원한다 이름 상자의 텍스트를 기반으로 메시지 레이블의 텍스트를 변경하면됩니다 그게 전부입니다 한번 시도해보십시오

방금 간단한 웹 앱을 만들었습니다 그것을 발표합시다 앱 메뉴를 열고 '게시' 이 링크는 비공개 링크입니다 Google 문서 공유 링크와 비슷합니다

링크를 보내지 않으면 앱을 엽니 다 하지만 대신 앱을 공개 할 수 있습니다 더 나은 URL을 제공하십시오 이제 모든 컴퓨터에서 hello-world-demoanvilapp

net을 열거 나 실제로 내 전화 (모루 앱은 작은 화면에서 자동으로 작동합니다) 우리가 만든 모든 것 지금까지 브라우저에서 실행되었습니다 파이썬 코드조차도 자바 스크립트로 컴파일되었습니다 물론 대부분의 앱은 서버에서도 무언가를 필요로합니다

우리는 서버를 추가 할 수 있습니다 우리의 애플 리케이션에 모듈 이것은 서버에서 실행되는 Python 모듈입니다 virtualenv로 어지럽 혀지면서, 바로 갈 준비가되었습니다 클라이언트에서 사용하려면 코드, 우리가 할 일은 함수를 정의하는 것뿐입니다

이 하나는 단 하나 걸립니다 인수 인 'name'을 입력하고 인사말을 인쇄합니다 우리가 @ anvilservercallable로 꾸미면, 우리는 우리 페이지에서 그것을 부를 수 있습니다

그럼 그렇게 하죠 우리는 단지 anvilservercall ()을 입력하면 autocompleter는 우리가 호출 할 수있는 것을 알고 있습니다 심지어 'name'이라는 인수를 사용한다는 것을 알고 있습니다

그래서 우리는 name_box 텍스트를 전달할 것입니다 다시 실행하십시오 우리는 약간의 결과가 있음을 알 수 있습니다 노란색 배경은 서버에서 실행 중입니다 이것은 파이썬 모듈 일 뿐이므로 어떤 것도 가져올 수 있습니다

당신은 'pip 설치'할 수 있습니다 데이터베이스와 대화하고 싶다면 드라이버를 가져 오기 만하면됩니다 연결하고 멀리 가세요 하지만 많은 앱에 일종의 저장 공간이 필요합니다 그들 자신을 위해서

새 데이터베이스를 설정하는 것은 힘든 일이지만 Anvil을 사용하면 쉽습니다 데이터 테이블 서비스는 순전히 파이썬 API가있는 즉석 데이터베이스이며, PostgreSQL 우리는 우리가 방문한 각 방문자의 이름을 기록 할 테이블을 만들 것입니다 텍스트 열로 표시됩니다 이제 서버에서 인사말을 인쇄 할뿐 아니라 데이터베이스에 이름을 추가 할 수 있습니다

app_tablesvisitors를 사용합니다 우리가 방금 생성 한 테이블 – 우리가 가진 이름 인 name 컬럼을 가진 행 추가 페이지에서 다시 시도해 봅시다 그리고 우리가 테이블로 돌아 가면 그 이름이 추가 된 것을 볼 수 있습니다

정리하자면, 데이터베이스 기반의 웹 애플리케이션을 구축하고 웹, 3 분 조금 넘게 그러나 Anvil에게는 훨씬 더 많은 것들이 있습니다 너의 삶을 편하게해라 예를 들어, 사용자 등록 및 로그인 구축 모든 응용 프로그램의 양식이 자질구레 한 일이 될 수 있으므로 Anvil을 사용하면 쉽게 사용할 수 있습니다 이 한 줄의 코드 만 있으면됩니다

Anvil의 사용자 인증이 예쁘다 강력한 기능 : 전자 메일 및 암호뿐 아니라 Google 또는 Facebook을 사용할 수 있습니다 회사의 Active Directory 또는 인증서 시스템에 연결할 수 있습니다 Anvil을 네트워크에 설치하려고합니다 지금은 이메일을 고집하겠습니다

이메일 주소를 확인하는 한 새로운 가입을 허용합니다 이 테이블 의 사용자는 이전의 방문자 테이블과 약간 유사합니다 그것은 또 다른 데이터 테이블! 우리는 그들을 연결할 수 있습니다 : 우리가 기록하는 모든 방문자에 대해, 우리는 저장할 수 있습니다 그 이름이 입력되었을 때 로그인 한 사용자 우리는 로그인을 보여주고 싶다

양식이 열리면 양식을 작성하십시오 이것은 생성자이므로 페이지가 열리기 전에 실행됩니다 로그인 양식을 보여 드리겠습니다 우리가 이전에 본 코드 이제 우리가 필요로하는 것은 저장했을 때 누가 로그인했는지 저장하는 것입니다

우리 서버 모듈의 이름 이름뿐 아니라 저자를 저장합니다 우리는 할 수있다 anvilusers

get_user ()를 사용하여 현재 기록 된 테이블 행을 가져옵니다 사용자 그것을 보자 : 나는 응용 프로그램을 열면 로그인 양식을 참조하십시오 새 계정에 가입해야합니다 알았어

확인 이메일을 받았어 링크를 클릭하고 확인합니다 이제 앱에 돌아 왔으므로 로그인 할 수 있습니다 내 이름을 입력하십시오 데이터 표를 보면 새 행이있을뿐만 아니라 방금 생성 한 사용자에 대해 방문자 테이블에 새 항목이 연결되었습니다

내 사용자 계정 따라서 우리는 안전한 다중 사용자 데이터베이스 기반 웹을 구축했습니다 신청서를 작성하고 6 분 안에 인터넷에 게시했습니다 내 일을 구할 시간이야 버전 저장을 클릭하고 메모를 작성합니다

변화 한 것의 앤빌 애플리케이션은 완전히 버전 제어됩니다 역사, 내 애플 리케이션을 보유하고있는 자식 저장소를보고있다 너는 할 수있다 원한다면 직접 컴퓨터에서 확인해보십시오

이제이 앱이 있습니다 이 버전을 게시 된 버전으로 선택하겠습니다 이것은 내가 내 앱에서 계속 작업 할 수 있지만 공개 URL을 방문하는 사용자는 앱의 게시 된 버전 Anvil에 대한 소개를 즐겼 으면합니다 더 많은 것을 탐색 할 수 있습니다 나는 너 자신을 서명하는 것이 좋습니다

비디오 자습서 및 참조 설명서를 살펴보십시오 와서 묻는다 커뮤니티 포럼에 질문하고 Anvil과 함께 작성한 것을 공유하십시오 나는 거기에서 당신을 만날 것을 고대한다!

Python Web Apps with Flask by Ezra Zigmond

[음악 재생] 에즈라 ZIGMOND : 안녕하세요, 여러분 오늘와 주셔서 감사합니다

이 세미나는 "파이썬입니다 웹 플라스크와 애플 리케이션 " >> 그래서, 내가 얘기하는거야 이유에 대해 조금 당신은 할 플라스크를 사용 할 수 있습니다 파이썬 웹 앱으로는 반대 거기에 다른 프레임 워크 등에 가장 잘 알려져있다 장고, 부제는 "와 뭔가 peewee " 우리는 방법에 대해 이야기하는거야 SQL 데이터베이스와 상호 작용할 수 있습니다 그것은 정말 좋은 수 있습니다 >> 그래서, 여기에 그냥 빨리 개요이다 내가 가서 할 무엇

그래서, 먼저, 하나의 슬라이드 즉, 빠른 될 것 이는 모든 것을 얻을하는 방법입니다 컴퓨터에 설정합니다 나는 시연 할거야 내 로컬 맥 컴퓨터에서이, 그건 그냥 있기 때문에 나는이 일을 한 경우 전에, 나는 그것으로 가장 편안 해요 그러나 이것은 확실히 CD50 IDE에 가능합니다 >> 그래서, 그 후, 내가 원하는 , 플라스크가 무엇인지 소개 당신을 설득 왜해야 처음에 그것을 사용할 수 있습니다 그럼, 빠른주지 당신이 무엇의 예 플라스크, 빠른 예에서 할 수있는 당신이 peewee에서 무엇을 할 수 있는지, 그리고 난 당신에게 더 많은 것을 보여줄 것이다 전체 예제 응용 프로그램 나는 우리 것을 함께 넣어 함께 걸을 수 있습니다 >> 그리고 마지막에 마지막 슬라이드, 내가 가진 당신이 보는 일부 리소스 자세한 내용은 온라인에서

이 완전하지 않습니다 플라스크를 사용하는 방법에 대한 튜토리얼 그리고 내가 떠날 희망합니다 질문 시간 사람은 그냥 로컬보고 같은, 중간에 밖으로 소리 당신은 질문이있는 경우 >> 그래서 빠른 설치 물건, 당신이 함께 따라하려는 경우, 또는이를 얻으려면 자신의 컴퓨터에 최대 파이썬 27

10을 사용하는거야 플라스크와 함께 작업을 수행 파이썬 3,하지만 내가 좋아하는 이 때문에, 파이썬이 사용 일부 파이썬 패키지 그 아직 3 작동하지 않습니다 당신은 핍 설치 한 경우, 어떤 파이썬 패키지 관리자입니다, 파이썬 경우 생각 보다 크거나 279 동일, 당신이 이미 설치되어, 그것은이다 이 패키지를 설치하기 아주 쉽게

>> 당신은 PIP 설치 할 수 플라스크, peewee를 설치 핍, 일반적으로 당신은 sudo를 실행해야 그래서 권한이 운동있다 그리고, 당신이 사용하는 경우 슈퍼 파이썬의 이전 버전, 나는, 파이썬를 업데이트하는 것이 좋습니다 또는 쉬운 설치를 사용하여 PIP를 설치합니다 그래서 다음 질문은, 플라스크는 무엇인가? 그리고 내가 먼저, 생각 합리적인 질문 궁금 오랜 시간이 들어, 웹 응용 프로그램은 무엇인가? 그 단어이기 때문에 그 나는 많은 주위에 던져 생각 난 정말 몰랐다 그리고 가장 좋은 생각 웹 응용 프로그램이 무엇인지의 예, 정말 CS50 금융이다 그것은 정말 그냥 웹 사이트 아니다 하지만 뭔가 당신을 종류와 상호 작용 할 수있다 사용자 계정이 있고 다른 여러 가지의 물건

그래서, 정확히 어디 그리 웹 사이트 무슨 사이의 라인, 및 웹 응용 프로그램은, 어떤 종류의이다 임의의,하지만 아이디어를 생각, 이 웹 사이트보다 더 뭔가 그것은 유용한 애플리케이션이다 >> 그래서, 플라스크 프레임 워크입니다 파이썬을 사용하여 웹 응용 프로그램을 만드는 그리고 희망, 말 이런, 내가 당신을 설득 할 것이다 당신은 실제로 뭔가를 쓸 수 있음 CS50 금융처럼 파이썬을 사용하는 나는 개인적으로, PHP보다 훨씬 더 좋아 >> 그래서, 플라스크, 그들은 전화 microframework,있는, 그들은 매우 뜻 간단하지만 신성 그래서, 그것은, 당신이 필요 단지가 하지만 당신은 더 많은 기능을 원하는 경우, 그것은 그들을 가지고 쉽다

하지만 그냥 있기 때문에 microframework하지 않습니다 이 작은 프로젝트 만의 것을 의미한다 나는 말한다 여기에 링크를 오바마 대통령은 2012 년 플라스크를 사용하는 것이 그의 캠페인 웹 사이트, 어떤 희망, 보증의 무언가이다 하지만 일이 내가 정말 플라스크에 대해 좋아 , 정말하지 않는다는 것입니다 당신을위한 의사 결정의 모든 종류 그냥 우리가하고 있기 때문에 웹 응용 프로그램에 대해 얘기, I는 루비와 비교해야 레일 및 장고, 모두의 큰 틀이 있지만 둘 다 가정을 에 대해 어떻게 당신이 원하는 데이터베이스와 상호 작용 어떻게 당신이 당신을 제시 할 뷰는, 그들은 확실히있어 그 좋은 측면 >> 예를 들어, 루비에 레일 이 활성 기록 시스템을 가지고, 이는 정말 좋은 데이터와 상호 작용하는 방법, 하지만 당신은에 루비를 사용하려는 경우 레일, 당신은 종류의에 묶여있어

그러나 플라스크에, 나는 겠지만 peewee 당신을 보여, 당신은 어떤 종류를 사용할 수 있습니다 데이터베이스의 당신이 원하는, 당신은 그냥 그 당겨 수 있습니다 플라스크에 확장으로 >> 그래서 왜 내가 정말 플라스크처럼, 그것은 것을이다 당신을 위해 가정을하지 않습니다 일을 기준으로 당신이 정말로 필요하지 않습니다 >> 그럼, 왜 당신은 플라스크를 사용해야합니까? 장점은 그냥이다 정말 핵심 기능을 가지고 있습니다 그것으로 내장 당신이 필요 그래서, 당신은 걱정하지 않아도 일의 모두를 이해 당신이 정말로 필요가 없습니다 당신은 걱정할 필요가 없습니다 기능을 끄는 방법에 대한 당신이 정말로 필요가 없습니다

>> 내가 언급 한 바와 같이 그리고, 그것은 최고입니다 사물의 확장에 쉽게 추가 할 수 당신은 필요합니까있다 그들 중 일부는, 플라스크가 그것에 대한 자신의 지원 그래서 플라스크라는 뭔가가있다 해당 관리 거울 관리자, 장고가 제공하는 패널, 하는 당신에게 좋은 시각적 인 방법을 제공합니다 당신의 웹 사이트를 관리 할 수​​ 있습니다 그러나 다시, 당신은이 있다면 뭔가 간단하게, 당신은 아마 큰 관리가 필요하지 않습니다 패널은, 그래서 그 슈퍼 좋은 것 같아요 그리고 단점은, 그 있습니다 당신은 상자 밖으로 적은 전력을 가지고있다

그래서, 당신은 첫 번째 술병을 열 때, 당신의 파이썬 프로그램에서, 당신은 플라스크에서 입력 수입 *, 또는 무엇이든, 정확히 모두를 얻을하지 않습니다 기능은 당신이 할 수 있습니다 그래서 당신은 더 명시 적으로를해야 당신이 원하는 기능을 나열합니다 그래서 한 가지 단점,하지만 작은 웹을위한 건물이라고 생각 나는 같은 애플 리케이션을 보여주는거야 당신은, 그건 정말 문제가되지 않습니다 그리고 마지막은 무엇인가 오타 인 말을하는데, 덜 표준화 있다는 것입니다 플라스크를 사용하는 방법에 대한 규칙, 다만만큼이되지 않기 때문에 전문적으로 그것을 사용하는 사람들 장고에 비해 그래서, 당신은 같은 것을 보면, 장고에 "어떻게 X를합니까" 당신은 아마 그것을 찾을 수 있습니다

>> 좋은 디자인이있다 당신이 사용할 수있는 패턴, 하지만 플라스크, 그것은이다 일종의 자신의 길을 갈, 그냥 왜냐하면 꽤 작은 도서관 그래서 사람들은 단점은, 그러나 나는 생각한다 것을 아직도 사용하는 것이 라이브러리입니다 >> 그럼 바로 플라스크에 뛰어 보자 이것은 확실히하지 않을 것입니다 튜토리얼을 완료하기 위해, 하지만 그것은 당신에게 아이디어를주고 있어요 사물을 구성하는 방법, 그래서 당신이가는 편안한 느낌 오프 및 문서보고 등을 알아내는 >> 그래서, 내가 정말 열 수 있습니다 처음에는 간단한 예를 들어, 그리고 그 무엇을 보여 모양, 그리고, 우리는거야 조금 더 내려 휴식

>> 그래서 여기, 내가 그것을 실행하자 그래서, 지금 내 응용 프로그램을 실행합니다 나는 사파리를 열 예정하고있어 내 로컬 호스트에서 실행중인 그래서 난 그냥이 더 큰 만들거야 그러나 로컬 호스트 : 5000 >> 그리고, 지금,이 모든 수행 , 당신은 웹 사이트를 방문 할 때, 그것은 "안녕하세요 플라스크"를 출력한다 이는, 슈퍼 유용하지 않다 그러나 나는 그 멋진 생각 여기이 작은 파일, 우리는 웹 서버가 실행이 그 뭔가를 인쇄한다

그래서, 실제로 살펴 보자 두 번째의 코드에서, 그리고 조금 내려 휴식 크기는 여기에 모든 사람을위한 좋은가요? >> 그래서, 희망, 당신은 어느 정도있어 파이썬을 사용하여 편안하게 나는 우리가 볼 수 있으리라 믿고있어 파이썬과 그것을 통해 읽어 보시기 바랍니다 당신에 대한 질문이있는 경우 아무것도, 나 또한 그 이상 갈 수 있습니다 >> 그래서 첫 번째 라인은 플라스크에서,이다, 우리는 자본, 플라스크를 가져 "F" 이는 모든의 일종이다 당신이 필요로하는 주요 기능

때마다 당신이 쓰고있어 파일을 사용하여 플라스크, 당신은을 가져올거야, 그 모든 주요 물건을 가지고해서 우리가 할 다음 일은, 우리입니다 다만,이 기능 플라스크를 호출 응용 프로그램 객체를 생성, 당신은 야합니다 항상 그렇게 할 것 >> 다음, 아래로 점프 아래 신속,이 부분은 여기입니다 이다 '의 if_name _ == "_ main_"' 파이썬 규칙의 일종 그래서 이것은 단지 당신이 경우 실행됩니다 직접 파이썬을 사용하여이 파일을 실행합니다 그런 다음, 우리는 것, app

run 전화 실제로가는 응용 프로그램을 시작합니다 >> 그래서, 그 주요 구조이다 그 당신은 어떤 플라스크 응용 프로그램에서해야합니다, 당신이있을 것이다 응용 프로그램 = 플라스크 (_NAME_), 다음 apprun >> 그래서, 두 가지 내가 가지고 여기에, 우리는 경로를 부르는 있습니다 자, 대해 얘기하자 조금 더 라우팅

내가 다시 슬라이드로 이동합니다 >> 그래서 가장 기본적인 플라스크의 개념은 라우팅된다 그리고 그것은 생각이 당신을 파이썬에 기능을 할당 특정 주소 웹 페이지에 그래서 때마다 당신이 원하는 새로운 경로를 만들려면 이 @의 approute를 사용 함수 장식

그래서, 당신은 잘 모르는 경우입니다 파이썬에서 함수 데코레이터, 그것은이 개념의 그 당신은 기능을 할 수 있습니다 하고, 그 위치에 다른 내용을 둘러싸고 있습니다 >> 그래서 정말,이 장식이 무엇을, , 아래 그것을 함수를 취한다는 것이다 그리고 더 많은 정보를 추가 그것, 그러나 플라스크 실제로 그 일어날 수 있도록하는 일은 매우 아니다 중요하지만 중요한 것은, 즉, 당신은 경로 전에이다 다음이 @의 approute을두고, 행의 어드레스, 그래서 슬래시는 우리 우리가 웹 페이지를 열 때 보았다 그래서 홈페이지입니다 그것은 단지 슬래시 경로입니다

그리고 당신은이 기능을 가지고있다 함수의 이름 당신이 원하는대로 할 수있다 이 반드시 필요하지 않습니다 경로와 함께 할 수 있습니다 그리고, 어떤 함수의 반환, 함수는 문자열을 반환해야합니다 그리고 그 문자열 수 , HTML 또는 아무것도 포함 그 무엇을 얻을 것이다 실제로 HTML로 웹 브라우저에 반환, 그리고 그 렌더링합니다

>> 그래서 이것은 동일한 코드이다 즉, 예에서 있었다 난 그냥 실행되었는지, 그래서 우리는 슬래시가 방문 할 때, 그것은 안녕하세요 함수를 호출하는 그냥 문자열, 안녕하세요 플라스크 반환, 그리고 그 화면에 출력됩니다 >> 그래서 또 다른 예는있다, 인 때 인사 / 방문 그것은 안녕하세요 말씀을, 밖으로 인쇄합니다 실제로, 안녕하세요 말을해야, 하지만 이제 그 의도적 척하자 그럼 진짜 빨리 그를 올려 보자 >> 그래서 당신은 안녕 / 로컬 호스트로 이동하는 경우, 지금은 다른 뭔가를 인쇄 할 수 있습니다 그래서 어떻게 그냥 빨리 예제 당신은 두 개의 서로 다른 경로를 만들 수 있습니다

>> 그래서, 지금까지, 슈퍼 유용하지 않다 당신이 할 수있는 훨씬이없는, 당신은 모든 것을 할 수있는 다른 HTML 페이지를 갖는, 당신이 특정를 방문 할 때 페이지 그냥 페이지를로드합니다 그럼 좀 더 살펴 보자 당신이 할 수있는 유용한 것 그래서, 한 가지 당신은 할 수 있음 내가 뽑아 예에서 발견 최대, 내가 apprun했던 것입니다 (디버그 = 참) 그리고, 어떤이 디버그 인수는,하지 당신이 당신의 웹 서버를 실행할 때, 당신이 당신의 응용 프로그램에있을 때, 당신이 파일을 변경하는 경우, 그것은 것입니다 자동으로 서버를 다시로드합니다

>> 그래서 당신은 실제로 필요가 없습니다 슈퍼 유용 다시 시작 파이썬, 나는 그것을 표시 할 수 있습니다 내 코드를 올려 보자 거기에 오타가와, 그 오타가 넣어 척 의도적으로 교육적 목적을 위해 그럼이 다시 추가 할 수 있습니다 그래서 지금은 안녕하세요 말한다

나는 그것을 저장합니다 그리고 우리가 끌어 경우 터미널, 당신은거야 그것은 다시 시작이야 말, 이 변화를 검출하기 때문에, 그래서 지금 우리는이 페이지를 새로 고침 할 때 그것은 올바른 일을 인쇄합니다 >> 그래서 디버그는 슈퍼 유용합니다 또한, 당신은 어떤이있는 경우 충돌의 종류, 그래서 날이 응용 프로그램 충돌을 만들어 보자 함으로써이 문자열을 반환하지 그래서, 그냥이하자 어떤 이유로 없음을 반환하지 않습니다

그리고 나는이를 방문 할 때 페이지, 그냥 충돌합니다, 하지만 서버는, 그것을 충돌하지 않습니다 실제로 당신에게 매우 유용 등을 제공합니다 모두의 추적은 잘못된 것이다 그리고, 정말 좋은 무슨가요 이 다시 추적의 모든 단계에서, 당신은 대화를 열 수 여기 쉘 및 종류의 인쇄 무엇 변수는 당신이보고 싶을 >> 그래서 디버깅 정말 파악하는 데 유용합니다 무슨과에 가고 당신의 서버보다는 보는 (500) 내부와 같은 PHP에서 뭔가 슈퍼 쓸모가 서버 오류 한가지는, 알아야 할 당신은 온라인으로 응용 프로그램을 넣어 경우 그래서, 공중 볼의 당신 결코에 디버그 모드를 마칠 수 없습니다, 사람들이 실제로 할 수 있기 때문에 그 콘솔을 사용하는 나는 당신은 임의의 코드를 실행하는 것을 보여 주었다 >> 그래서 그들은 어떤처럼 인쇄 할 수 있습니다 당신이 거기에있는 비밀 코드 그들은 정확하게 볼 수 있습니다 어떻게 당신의 웹 사이트가 작동된다

그래서 정말 유용 테스트를 위해,하지만 항상 하기 전에 그것을 꺼내주십시오 온라인 아무것도 게시 할 수 있습니다 >> 그래서 때 당신이 뭔가를 사용하는 PHP처럼,이 아이디어있다 당신은 통과 할 수 웹 페이지 정보 사이 실제로 정보를 넣어 GET 요청되는 URL에, 하지만 플라스크에, 당신은 실제로 수 일종의 그런 일을, 보유 경로를 가짐으로써 그것의 일환으로 변수입니다 >> 이 보면 그래서 여기에 화면에 예, 우리의 경로가 ( '/ 인사 /'), 그래서, 당신이 방문하는 경우 / 안녕하세요 / 뭔가, 뭔가 실제로 채워진 얻을 것입니다 이름 변수로 그리고 기능 통지 즉, 그 경로와 함께 제공 매개 변수에 걸릴해야 이름 실제로 있도록 함수에 전달받을 >> 그리고, 한 번 당신이있어 그 함수의 내부, 당신은 같은 것을 처리 할 수​​ 있습니다 일반 파이썬 변수 그래서 다음, 그것은 것입니다 안녕하세요 인쇄하고, 사용하여 이름을 입력합니다 일부 문자열 형식

>> 그래서 라우팅에 변수 부분을 추가하려면, 당신은 표시 각도 브래킷을 사용합니다 그리고 선택적으로 사용할 수 있습니다 무엇 컨버터라고 그래서, 당신은이를 넣어 경우 콜론 주석, 당신은 그것의 지정할 수 있습니다 INT, 또는 부동 소수점, 또는 경로, 그것은 자동으로 변환합니다 또한 변환을 수행 할 수 있습니다 파이썬 함수 내, 그냥 캐스트를 사용하여,하지만 때로는 경우 당신은 INT의 수 있도록하려면, 당신은 넣을 수 있습니다 거기에 변환 규칙 >> 그럼 예를 당겨 보자 일부 변수 규칙

그래서 여기,이 기본 같은이 플라스크 가져 오기에서와 구조 플라스크, 응용 프로그램 = 플라스크 (_NAME_) 그리고, 그것은 끝에 달리고 우리는이 두 가지가 여기에 변수 경로 그리고 첫 번째이고, 내가 보여준 하나 이었다 슬라이드에서 그냥 문자열 이름에 소요 그리고, 이름 안녕을 인쇄합니다 >> 다음, 두 번째 하나는 변환을 사용합니다 그래서이 자동으로 변환됩니다 int로, 다음, INT을 두 배로 그를 인쇄 할 수 있습니다

그리고, 우리는 모든 종류의 작업을 수행하지 않습니다 그 안에 변환 플라스크가 돌봐 때문이다 그래서이 실행하자 당신은 플라스크가있는 경우 응용 프로그램을 실행, 당신은 그것의-C를 제어 할 수 있습니다 서버가 실행을 중지합니다 그리고 나는 변수를 실행합니다 >> 그럼 로컬 호스트 / 인사 / 에즈라로 이동하자 희망이 나에게 인사를한다

>> 그래서 변수에 내 이름으로했다 경로, 그리고 여기에 가득 그래서 나는 또한 빠른 보여주지 두 배의 예 그래서 3 / 더블 /로 이동하는 경우, 그것은 6을 출력합니다 그래서이 처리했다 우리의 전환 >> 그래서 당신은 또한 함께 할 수 있습니다 플로트, 그리고 뭔가 특별한, 당신이 뭔가를 지정해야하는 경우 이 슬래시를 수용 할 수있는 경로, 하지만 일반적으로 문제가되지 않을 것이다

지금까지 우리는 여전히이 다만 반환 된 매우 흥미없는 문자열 >> 우리는 실제로 반환 할 수 있습니다 문자 HTML 문자열 그래서 코드에서 우리는 뭔가를 삽입 할 수 있습니다 B-태그가 굵게하려면, 그러나 대부분의 시간을 당신에게 실제로 싶지 않아 HTML 코드를 작성 할 수 파이썬 코드에서 그것은 정말 지저분 도착 그것은 좋은 시간이 아니다 >> 플라스크는 우리가 밖으로 분리 할 수​​ 있습니다 템플릿이라고 무엇에 HTML, 만약 그렇다면 당신이 생각하고 MVC 모델의 관점에서 당신이 잘 알고 있음, 희망, 작동 CS50 금융과 조금, 당신은 파이썬 파일을 생각할 수 컨트롤러, 더 인 것으로 그들은 어떤와 상호 작용 당신이있을 수 있습니다 데이터 모델

>> 그리고 그들은보기로 부르고있다 그보기로 정보를 전달 정보를 입력합니다 HTML에서 그것은 필요가있는 그리고 우리는 그 조회수를 부르는 클래스 템플릿입니다 >> 그래서 플라스크는 다른 파이썬을 사용 모듈이 자동 것 설치 핍 때 설치 플라스크 신사를 호출하는 당신은이를 추가 할 수 있습니다 HTML에 주석 화면에 표시되는 것으로, 그 수 당신은, 조건문 같은 것들에 넣어 그리고 HTML로 반복합니다 >> 그래서 그 방법처럼 조금 보이는 HTML 파일 내에 PHP를 사용할 수도 그러나 이것은 바로 그 때 플라스크입니다 서버는 HTML 파일을 제공 그것은이 템플릿 엔진을 실행하고 이 구문 분석과에서 일을 입력합니다 그래서 플라스크 render_template 기능을 갖는다 여기 하단에 볼 수있다

그래서 당신은 그것을이 페이지를 방문 할 때 이 hellohtml 템플릿을 렌더링 것이다, 다음이 HTML 페이지에 입력합니다 그래서 그냥이 현실을 실행할 수 신속하고 모양이 어떻게되는지 확인합니다, 그리고, 나는 통과 할 것이다 자세한 세부 사항에서 조금 그래서, 당신의 템플릿 가고있다 템플릿 폴더에 이동합니다 그것은 자동으로 내 볼 것이다 템플릿은 템플릿 폴더

그럼이를 열 수 있습니다 그래서, 템플릿 예제를 실행합니다 >> 그래서 / 인사 / 에즈라에 가면, 그것은이 끔찍한있다, 내가 넣어 독이 윤곽 태그입니다 아주 좋은, 매우 역동적 나는 큰 팬이에요

그러나이 경우 발생 난 그냥, / 안녕하세요로 이동? 그래서 그냥 안녕하세요 말한다 나는 이름을 통과하지 않고 그것은 자동으로 채워 그래서 그것을 어떻게했는지 보자, 어떻게 우리는 어쩌면 그 윤곽을 제거 할 수있다 >> 그래서 여기,이 종류의 것입니다 의 흥미로운 예를 들어, 어떻게 스위치에 익숙한 경우 문은 언어로 작동합니다 이 같은 종류의 것입니다 말 를 통해 가을의 종류, 여기서 당신은 실제로 두 개의 부착 동일한 기능의 다른 경로

그래서 우리는 / 안녕하세요 경로를 첨부 안녕하세요에 / 인사 / 이름 경로, 파이썬은 다음을 수행 할 수 있습니다 using– 우리는 지정 기본 기능 arguments–를 지정 그래서 이름이 그래서 존재하지 않는 경우 우리가 가면 그냥 / 안녕하세요, 자동으로 필터링됩니다 이름 없음과 같다 >> 그럼, 우리는 렌더링 이름 = 이름을 가진 템플릿, 그래서 이름을 매개 변수로 전달됩니다 이 이름의 함수 매개 변수와 동일, 템플릿에 얼마나 그것은 여전히​​ 설명하지 않습니다 안녕하세요 인쇄 여부를 결정, 또는 내 이름을 인쇄 할 수 있습니다 그래서 실제로 살펴 보자 템플릿 자체에, 그리고 그 어디에서 오는 참조하십시오 >> 그래서,이 템플릿 내에서, 우리 실제로 일부 조건부 논리를 가지고, 이는 어떤 사람들은 것 주장, 당신이 실제로 조건을 많이하지 말았어야 템플릿 자체 내에서 논리

그것은 내 더해야 컨트롤러하지만,이 예를 들어, 그것은 아주 작은 뭔가 이름 경우 그래서 여기, 우리는 그렇게, 확인 만약 이름이 없음 동일하지 않은, 이름은 실제로이면 다음, 우리는 것입니다 전달 와 이름, 인사 헤더와 천막, 이 모든 일반 HTML, 그렇지 않으면, 우리는 것 안녕하세요 인쇄, 세계 다만 보통 그래서 몇 가지가 여기주의 사항 당신이 템플릿을 포맷하는 방법에 대한, 이들의 모든입니다 조건문, 종류의 같은 우리가 때를 PHP 방법 당신은 몇 가지 PHP를 삽입 할, 당신은 덜보다 사용하기 질문 마크, 여기 종류의 유사한이다 {%와 >> 그래서 여기, 우리는 우리의 조건 코드를 가지고있다 그리고, 당신은 실제로 원하는 경우 말 그대로 뭔가를 평가하고, 인쇄 화면에 그것을 밖으로, 당신 이중 중괄호를 사용한다

그래서 여기에 이​​중 중괄호가, 그리고, 우리는 이름을 지정, 그 안에 그래서, 평가합니다 변수 이름에있는 에서 전달 템플릿 기능을 렌더링 오히려 바로 인쇄보다 밖으로, 우리는이 제거되었다 경우, 그냥 단어 인쇄 것 "이름을" 그래서, 그 조심하는 뭔가 >> 그래서 다른 일에 통지는 때를, 그 를 사용하려면 render_template 기능, 우리는 실제로 가져가 그것은 명시 적으로 플라스크에서 그리고 이것은의 예입니다 플라스크의 모듈화, 당신은 가져올 필요가 없습니다 필요하지 않은 것들 당신은 가져올 수 있습니다 기능 실제로 때때로, 이는 필요합니까 좋은, 그래서 당신은하지 않습니다 이러한 모든 기능을 가져야 당신이 사용하지 않는 것을 주위에 앉아 뿐만 아니라, 당신은 당신을 잊지 경우 render_template을 가져와야합니다, 당신은 아마 경고를 얻을 수 있습니다 그건 당신이 그것에 대해 알려드립니다

그래서, 그 템플릿입니다 >> 그래서, 우리는 방법을 보여 주었다 간단한 웹 페이지를 만들 과에 조금 더 로직을 추가 이는, 가변 라우팅 환산 그것은 당신이에 따라 서로 다른 일을 할 수 있습니다 당신이 다음도에 가서, URL, 제공 에서 HTML 조금 더 의미 당신이 일을 렌더링하는 방법의 측면 당신은 모든 넣을 필요가 없습니다 파이썬에서 HTML, 하지만 거의위한 모든 웹 응용 프로그램, 당신은 어떤 종류를 원하는거야 데이터 모델과 연관된 >> 그래서 전통적으로,이 것 SQL 데이터베이스와 같은 뭔가

그리고 당신은 상호 작용할 수 있습니다 직접 SQL을 파이썬은,이 나는 그것이라고 생각합니다 SQLite는 3 당신은 그냥 SQLite는 3를 가져올 수 있으며, 직접 SQL 쿼리를 실행, 하지만 난 당신에 대해 알고하지 않습니다, 하지만 난 정말, 그냥 싫어 SQL 쿼리를 작성하는 정말 얻​​을하는 경향이있다 길고 복잡한

>> 그래서, 뭔가 그 내가 사용하는 것이 무엇처럼 인 ORM로 알려진 객체 – 관계형 매핑 그리고 지점 객체 관계형 매핑, 두 개의 서로 다른 있다는 것입니다 방법은 당신이 데이터베이스에 대해 생각할 수 있습니다 >> 예 그래서 교수 마란 보통 클래스에서 사용 엑셀 테이블이며, 이러한 행과 이러한 열을 가지고, 그것은 정말 유용 그것은 SQL로 표현하는 방법 당신이 그것을와 상호 작용하는 방법,하지만 실제로의 또 다른 방법 때로는 그것에 대해 생각하는 데 유용합니다, 클래스와 객체의 관점에서입니다 >> 그래서 그 대신 사고 각 테이블의 것으로 특정가이 행 정보, 당신은 실제로 수 존재로 생각 각 테이블은 클래스, 의 다음 모든 인스턴스 클래스는 특정 속성을 가지고있다 그렇게,이 예에서는, 인스턴스 클래스 표에서의 행이며, 다음 각 속성은 것 테이블의 열 수

>> 그래서, 내가 좋아하는 ORM peewee라고 사용합니다 그것은 일종의 플라스크처럼, 정말 작다 나는 그들이 함께 잘 갈 생각, 하지만 다른 ORM들을 많이있다 당신이 사용할 수있다 인기 하나는 SQLAlchem​​y도 알려져, 나는 왜 내가 원래 기억이 안나요 SQLAlchem​​y도 이상 peewee를 선택 또는 내가 왜 말 것 그것이 최선의 하나라고 생각, 그러나 우리는이를 사용하는거야 하나는 내가 그것을 사용하는 방법을 알고 있기 때문이다 >> 따라서, 하나의 질문은, 왜 당신이 ORM을 사용하여 귀찮게한다, 대신 직접의 SQL 쿼리를 작성? 그리고 최상의 경우를 생각한다 당신이 실제로 없다는 것입니다 SQL 쿼리를 작성해야합니다

나는 당신을 보여줄 것 같은 그것은에, 훨씬 쉽게 선택과 같은 일을, 삽입, 삭제, 특히 테이블을 생성 그것은 훨씬 쉽게 클래스 구조를 작성, 이 구조화보다 만들기 표 문,하지만 한 가지 , 알고있을 것입니다 ORM은 최선을 다할 것입니다 알아 내기 위해 무엇을 가장 효율적인 SQL 쿼리는 것 하지만 때로는 그것이 잘못 가져옵니다 >> 그리고 당신이있어 특히 큰 데이터베이스 작업, 당신은 쿼리 것을 알 수 있습니다 즉, 빠른 실행되어야한다 실제로 더 많은 시간이 소요되고 있습니다 그리고 당신은 방법에 후드를 보면 ORM은, SQL로 그 해석된다 이 일을 할 수 있습니다 정말 말도 안되는, 그저 그것 때문에 당신의 의도가 잘못 몸짓 그리고, 시간이 어디있어왔다 나는 그것을 무시했고, 단지 한 그냥 내 자신의 SQL 쿼리를 실행 그것은 이상한 방법으로 분석되었다 때문이다

그래서,이 몇 가지 다만 방법에서, 오버 헤드 이 컴파일 당신의 SQL에 아래 문 >> 자,에 빨리 슈퍼 살펴 보자 데이터 모델의 간단한 예 당신이 사용할 수있는 그래서,이 때문에 파이썬 코드하고, 당신이해야 할 첫 번째 일은에서입니다 peewee 수입 * 그래서, 플라스크, 달리, 당신은 어디에 이러한 모든 개별 모듈, 당신은 플라스크를 가져올하고, 템플릿, 일부 다른 사람을 쓰기 우리가 나중에 볼 수 있습니다 즉, peewee에서, 당신은 모든 것을 가져올 수 있습니다 때문에 꽤 작은 도서관이다 >> 그래서, 당신이해야 할 첫 번째 일이며, 실제로이 데이터베이스 개체를 만듭니다

그래서, 당신은 DB =위한 SQLiteDatabase, 다음 데이터베이스의 이름 그리고 이것은 실제로 것 데이터베이스 객체를 생성 당신은 peewee와 상호 작용할 수있다 >> 다음, 우리가 실제 우리가 만들려는 모델 그래서 표는 우리가 만들려고합니다 그래서, peewee 내에서 각 클래스는있다 데이터베이스 내에서 자신의 테이블

그래서, 모든 클래스 기본 모델에서 상속, 및 자본 M 모델입니다 peewee에 정의 뭔가 >> 그래서, 당신의 모든 모델은해야 가장 높은 상위 클래스로 상속, 그들은 상속한다 모델,하지만 정말 멋진 것은, 당신이 실제로 당신이 할 수 있다는 것입니다 모델은 서로로부터 상속 그리고 많은 시간, 당신의 데이터 모델은 반드시 그렇지 좋은 상속 계층 구조를 만들지 만, 그들이 어디에서 시간, 그것은 정말 좋은 데요 당신이 모델을 가지고 있기 때문에 서로 고유 >> 그래서 우리는이 클래스를 정의 모델을 상속 '학생', 그것은 세 가지 속성이 있습니다 그것은 인 ID를 가지고 PrimaryKeyField, 어떤 제공 뭔가입니다 peewee으로, 이름은 CharField입니다, 및 등급 IntegerField이다

그래서이 또는하지 않을 수있다 방법 CS50 실제로 모든 저장 학생들의 성적 그것은 아니지만, 이것은 내가 어떻게 할 것입니다 >> 그리고 그것은 내에서,이 이 클래스,이 당신이 할 수있는 일입니다 파이썬, 당신은 중첩 된 클래스를 가질 수 있습니다 그리고 이것은 뭔가 그는 peewee 필요로합니다 그래서,이 클래스 메타, 당신은 데이터베이스가 있음을 지정합니다 개체와 같은지 우리가 위에서 만든 그

그리고이 파일이 표가 무엇인지 말한다 실제로 함유 할 것 그래서 이것은 당신이 무엇인가이다 당신의 모든 모델 내에서 할 수 있습니다 당신은 지정해야 이 메타 클래스 내에서 이 데이터베이스는 DB와 동일하다 내가 가지고 있다면 나는 보통, 무엇을 다른 모델의 무리, 나는 하나의 기본을 가지고있다 모델, 나는 그 보통 그냥 "기본 모델"전화 즉, 메타 클래스가, 그리고 DB 동일한 데이터베이스를 설정한다 그리고 내 후속 모델의 모든 그 기본 클래스에서 상속합니다

그리고 나는 걱정할 필요가 없습니다 메타 클래스를 설정하는 방법에 대한 >> 그래서,이 실제로 얻을 때 SQL 문에 아래로 컴파일, 그것은 다운이 심한 것 같습니다 여기에, "테이블 학생증 정수 만들기 " 도대체 무엇이 >> 그리고, 나는 짧은 생각, 여기이 SQL 쿼리, 하지만 당신은 여기에이 클래스를 보면 당신은 무슨 일을 정확히 볼 수 있습니다 당신은 필드의 어떤 종류를 볼 수 있습니다 그들이이라고하는지,있다, 그래서, 나는 생각 이 파이썬 코드를보고 보다 더 많은 읽을 수 있습니다 이 SQL 쿼리를 작성하려고합니다 >> 그래서,에 위해 실제로 데이터베이스를 사용, 우리는 파이썬 내에서 연결해야합니다

그래서, 보통이라는 함수를 작성 두 가지 일을 initialize_db 그것은 데이터베이스에 걸리는 객체 DB과 다만 열리는, 그 연결 데이터베이스에 대한 부분입니다 방금하지만 실행하는 경우 로컬 컴퓨터에 웹 사이트, 그것은 걱정 슈퍼 큰 문제가되지 않습니다 연결 및 분리에 대한, 그러나 당신이 실행하는 경우 웹 사이트에, 당신 확실 할 때마다 사용자, 확인 할 그들이 밖으로 닫을 때, 그것은 연결 웹 사이트, 그들은 있도록 분리 당신 연결하는 사람들의 무리가 없습니다 데이터베이스에 한 번에 >> 그리고, 때 당신에게 데이터베이스에 연결, 당신은 dbcreate_tables 호출 할 당신이 원하는 것을 위해 모델을 나열 테이블을 만들 수 있습니다

그래서 여기에, 난 그냥 원하는 이 학생을 만듭니다 그리고, 중요한 것은,이다 안전 = 사실 대부분의 시간을 지정합니다 그래서이 문 할 것입니다 그것은 그 테이블을 생성 학생 모델 만 그 테이블은하지 않은 경우 이미 생성 된 즉, 무엇을 안전을 지정합니다 그래서 덮어 쓰지 않습니다 기존의 테이블, 그것은 단지 새를 만듭니다 테이블이없는 존재하는 경우

그래서, 당신은 만들 수 있습니다 테이블은 한 번 SQL을 사용하여 그리고 그 데이터베이스 앉아있다 이 다음 각 시간에 연결 하지만 그것은 단지에 일반적으로 좋다 이 create_tables 호출에 넣어, 그래서, 혹시 삭제 경우 데이터베이스 때 웹을 실행 응용 프로그램을 다시 그것을 다시 할 것이다 >> 그래서, 안전을 확인하십시오 사실로 지정, 또는 당신은 당신의 데이터를 찾을 수 때마다 사방지고 그리고, 당신은 단지 호출 할 수 있습니다 설정 initialize_db 연결 및 작성 테이블 필요한 경우 >> 따라서, 가장 일반적인 것은 당신이 원하는 것, 또는 가장 일반적인 것 중의 하나, 실제로 물건을 삽입하는 것입니다 데이터베이스에

그래서보다는이 필요 INTO 삽입 쓰기 모두와 함께 문 지정된 값은, 당신은 실제로 호출 할 수 있습니다 학생 클래스의 기능 그래서, 당신은 클래스를 만들 때 즉, 모델에서 상속 그것은이 방법을 만들 수 있습니다 >> 그래서, 당신은 클래스 namecreate을, 당신은 매개 변수를 지정 당신은 전달하려는 그래서, 일부 학생을 추가하려면 우리의 CS50 학년 책 예, 나는 누가이 다윗에 놓을 게요 아주 좋은 등급, 그는 95있다

그리고 나 자신, 누가 일을 아니에요 잘 CS50에, 나는 50이있다 그리고, 좋은 점에 대한 이 생성 기능이 무엇을, 이 인스턴스를 반환, 또는이다 행은 테이블 내에 생성 것을 그래서 당신은에 그 저장 변수, 나중에 작업 할 수 있습니다 당신은 주위에 변경할 수있는 나는의 예를 보여 드리겠습니다 >> 내가하지 않았다는 것을 알 수 있습니다 ID를 지정해야합니다, 이 때문에 때문에 PrimaryKeyField, 자동 것 당신이 그것을 지정하지 않은 경우를 증가 그리고, 사실, 아마 를 지정하지 않아야합니다, 실수로 수 있기 때문에 누군가 다른 사람의 ID를 소지품

그리고 당신은 만들고 싶어 이 고유의 있는지 확인하십시오 >> 그래서, 실제로, 대부분의 당신이 원하는 공통적 인 것은, 아마 밖으로 선택한다 당신이 한 번 데이터베이스 거기에 많은 정보를 가지고있다 그래서, 당신은 모든 것을 얻으려면, 그래서 선택 별의 동등한 학생들 문에서, 그것을 다만 studentselect 것입니다 그리고 그 배열을 당신을 다시 줄 것이다 학생 모두가 그 안에 객체 당신이 반복하는 것이 당신이 원하는

당신은 그것의 일을 얻을 수 있습니다 대부분의 시간, 당신 단지 선택하고 싶지 않아, 당신은 실제로 뭔가를 지정합니다 그래서, 당신은 체인 수 함께 이러한 함수 호출, 어떻게 체인 같은 것 SQL에서 함께 문 그래서 당신은) (studentselect을 수행 할 수 있습니다

여기서 이 예에서 그리고, 당신은 할 수 , 조건을 지정 다만 일반 파이썬을 사용하여 부울 물건을 확인합니다 >> 그래서,이 경우에, 당신은 원하는 , 당신이 선택하는지 제한 studentgrade 50 동일이고, 과 studentname는 에스라와 동일 그래서 그냥 밖으로 저를 얻을 것이다

그리고 정말, 하나를 발견 미묘한 것은 여기에있다 지정하려는 경우, 그 및 / 또는 및 / 또는 또는, 파이썬에서, 당신은 일반적으로 사용하는 것입니다, 나는 단어 "와"실제로 생각 그러나 여기에서 당신은 하나의 앰퍼샌드를 사용, 이는 일반적으로 비트 연산자입니다, 그러나이 특별한 경우에, 다만 방법의 peewee는 않습니다, 당신은 하나를 사용 앰퍼샌드 지정 "와"하는 즉, 뭔가 그 나는 많은 혼동, 하지만가 나타나지 않습니다 실제로 그 정도 >> 그리고, 한 번 당신은 모두가 데이터베이스 중 학생들, 작업을 완료 한 후에는 선택이야 당신의 마모 또는 무엇이든, 당신은 foreach 루프를 사용할 수 있습니다, 다만, 파이썬에서 정상 등 반복자의 종류와 또는 배열의 종류와 그래서 당신은 초 동안, 할 수있다 studentselect에 ()

갔지 (Studentgrade <75), 그리고 그래서이 뜻을 다시 테이블의 각 학생을 반복 그 등급은, 이하 75 인 이 경우, 여전히 날입니다 그리고 당신은 내 일을 할 수 그 루프는 같은 나에게 이메일을 보내 나 사실을을에게 내 문제 설정에서 설정합니다 >> 그래서, 또 다른 한가지는 당신이 할 수 할, 정말 쉽게입니다 테이블 내에서 행을 업데이트합니다 그래서, 여기에 다시 기억, 당신의 내가 삽입, 나는이었다 값을했다 student

create에 의해 반환, 나는 에스라라는 이름으로 지정 그리고 지금, 당신은 변경할 수 있습니다 해당 인스턴스 내의 값, 단지 같은 당신 것 파이썬에서 일반 클래스입니다 >> 그래서 사용자가 설정할 수 ezragrade = 95 즉, 로컬 복사본을 업데이트 할 것입니다, 하지만 당신은 실제로 원하는 경우 데이터베이스에 그 변경 사항을 커밋, 당신은 ezrasave를 호출해야 그래서 당신은

save 방법이라고 인스턴스 >> 그리고 지금, 나는 성공적으로 변경 데이터베이스 내에서 내 자신의 등급 그래서, 다음의 내가 잡힐 것을 가정 해 봅시다 데이터베이스 내에서 내 등급을 변경 교수 마란 아마 것입니다 클래스에서 저를 삭제할합니다, 그래서 당신은 delete를 호출 할 수 있습니다 단지 그 일에 인스턴스 방법

>> 당신이 원하는 경우에 따라서, 이동 다시이 루프에 여기에, 실제로, 대신 모든 이메일을 보내는 학생들의 그 등급 이하 (75)보다, 당신이 그들을 삭제하고 싶었다, 이 루프에서 당신은 할 수 sdelete 인스턴스를 호출합니다 그리고 당신이 원하는 바로 그 마지막, 연결을 설정할 때마다 인, 당신은, 당신의 일에 완료 당신은 dbclose 호출 할 여기서 DB는 데이터베이스입니다 우리가 전에했다 객체 그리고 당신은이 있는지 확인하려면 모든 것이 밖으로 폐쇄됩니다

>> 시원한 그래서 지금, 나는 예제 응용 프로그램이 있습니다 나는 종류의 모든 걸 사전했습니다 그래서 상관 라이브 코딩이되지 않습니다 실수,하지만 우리는을 통해 걸을 수 그것과는 플라스크를 넣어하는 방법을 참조 함께 peewee, 간단한 응용 프로그램을 확인합니다 나는 CS50의 호언 장담을 호출, 그것은이다 간단한 블로그 플랫폼의 종류 >> 그래서, 먼저, 나는 그것을 실행거야, 그리고 그것이 어떻게 생겼는지 보여 그리고, 우리는 코드에 더 많은 볼 수 있습니다

좋아, 그냥이를 실행 할 수 있습니다 ,이 쿨 만들어 줄게 조금 작은 그냥 때문이 아니라 아주 예쁜입니다 나는, CSS를 많이하지 않았다 하지만 무엇을 그것은 가지고 있습니다 블로그 게시물의 데이터베이스, 그리고 그것은 모두 통과 그들, 그리고 그것들을 표시 가장 최근의 순서로 페이지에 그리고 이건 그냥 몇 가지 게시물이 I는 데이터베이스에 저장했다고 >> 우리는 새로운을 만들려면 이렇게 이후, 우리는 새 게시물을 추가로 이동 할 수 있습니다 그리고 우리는의 제목을 입력 할 수 있습니다 포스트, 그래서 뭔가 같은, CS50 세미나

와우, 정말 세미나를 즐기고 >> 시원한 그런 다음 게시물을 누르면, 그것은 것입니다 홈 페이지로 다시 리디렉션, 그리고 당신은 그것을 볼 수 있습니다 최신 게시물이 추가되었습니다 그리고 우리는 여전히 모든 사람이있다 그래서 지금의이 모든 단계별로하자 코드와이 구현하는 방법을 참조하십시오

>> 그래서,하자 제일 먼저 생각 실제로 모델입니다 좀 봐 많은 시간, 때 당신이 뭔가를 설계하고, 당신은 방법에 대해 먼저 생각하고 싶지 당신은, 당신의 데이터를 대표하는거야 그리고 그 주위에 물건을 설계, 그래서 그 모든 것이 의미가 있습니다 그리고 내가 어떻게이 실제로 나는이 제작되었을 때, 그것을했다 나는 앉아서 생각 나는 게시물에 무엇을 원하는가 >> 그래서, 여기에서는 동일한 구조를 갖는다 앞서 언급되었다, 우리는 DB = Sqldatabase ( 'postsdb')를 수행한다

실제로, 당신은 아마 싶지 않아 당신의 이름의 데이터베이스의 하드 코드 그건 아마 매개 변수해야 그것은 아마, 어딘가에 저장되어 설정 파일에 있지만에서 이 같은 작은 예를 들어, 그것은 그 하드 코드 괜찮습니다 >> 그래서 지금, 우리는이 게시물 클래스가, 이는 기본 모델에서 상속됩니다 그리고 다시,이 ID = PrimaryKeyField 사실, 당신은 지정하지 않은 경우, 나는 실제로이 제거되었다 경우, 우리가 알아서 할 것이다 peewee 자동으로 ID 필드를 만들어 그것은 자동 것 그것을 기본 키를 확인하는 나는 때문에 일반적으로, 정말 좋은 생각 즉, 당신이 갖고 싶어 뭔가 하지만 난 특별히에 넣어 좋아 그냥 그렇게 나는 거기에 있다고 기억합니다

하지만 당신은 그를 지정하지 않은 경우, 그 자동있을 것입니다 >> 그럼, 나는 일이있는 DateTimeField이며, 모든 이러한 다양한 분야, 당신 경우 peewee 문서를 보면, 그것은 당신에게 다른 목록을 줄 것이다 당신이 사용할 수있는 필드의 종류 대부분의 경우, 그것의 유사 당신은 SQL에서 볼 것입니다 무슨에 그래서 CharField는이있다 VarCharFields, TextField의, 아주 오래 된입니다 블로그 게시물과 같은 텍스트, 잠재적 DateTimeFields, DoubleFields, FloatFields, 그런 모든 것들 >> 그리고 당신은 다른 인수에 전달할 수 있습니다 여기에, 나는 여기에 지정하지 않았다

말, 예를 들어, 당신은하고 싶지 않았다 이 게시물은 동일한 제목을 가질 수 있도록, 당신은 지정할 수 있습니다 참 독특한 뭔가 = 그것은 단지 추가 매개 변수의 그것을 다운 컴파일 때 필드 SQL로, 그것은 지정 것 이 가지고 고유해야합니다 또한 뭔가를 지정할 수 있습니다 NOT NULL 및 다른 모든 것들 당신은 일반적으로 SQL에서 할 그래서,이 매우 간단하다 날짜가 모델 DateTimeField 내에서, 여기에 주목, 나는 기본이 무엇인지 지정했습니다 나는 수를 지정 , datetime

datetimenow 때문에 방법의 이 평가됩니다, 실제로 평가 datetimenow 때 이것은 데이터베이스에 삽입 얻는다 >> 나는, 내가 가진 거라고 생각 이를 재확인하고, 하지만 당신은 다음과 같은 일을 한 경우 실제로, 한 번 그 평가 것 다음 날짜 시간 항상 같은 것입니다 그래서, 당신이 뭔가를하고있는 단지 경우 날짜 시간에 두 번 확인 이 때 평가 있다고 실제로 다른 삽입, 또는 도착 당신은 혼동 될 수 있습니다

>> 제목은 단지이다 CharField, 거기에있는 당신이 전달할 수 있습니다 더 인수는 지정 정확히 시간에 당신 이 원하는, 그러나 여기, 정말 문제가되지 않았다 그리고 텍스트가 될 것입니다 전체 게시물의 텍스트, 그것은 될 것 당신이 원하는해서 텍스트 필드 그것은 꽤 긴 문자열이 될 수 있도록한다 >> 그리고 우리는이 메타가 서브 클래스 그 단지 우리는 데이터베이스를하도록 지정 이 사실에 개방된다 우리가 여기있는 DB 오브젝트를합니다 그리고 마지막 우리는이 여기에, 그냥이 기능입니다 우리는 거라고 우리의 주요 응용 프로그램에서 사용 연결하는 데이터베이스를 초기화 그것은 다음 포스트 테이블을 만들 수 있습니다 >> 이제, 주요 응용 프로그램 자체를 살펴 보자

그래서 하나는 꽤 것보다 더 비트 우리가 전에 본 적이 있는지, 그러나 희망도 나쁘지 않다 그래서, 내가이를 확장 할 수 있습니다 알았어 >> 그래서, 통지 및 최고 나는 수입 다른 것들의 전체 무리 플라스크에서 우리는하지 않았 음 정말 한 번도 본 희망, 우리는 통과 할 수 있습니다 이러한 하나 하나의 각 과에 대해 조금 더 이야기 그들은, 예를 기준으로 정렬

그래서 우리는, 플라스크를 그리고 render_template, 이는 우리가 전에 본 적이 이 요청 개체, 우리가 어떻게 보면 올 것이다 나는 실제로 보여주는 된 형태 공장 리디렉션 할 수있는, 리디렉션 다시 새로 만들기 포스트에서 원래 홈페이지에 백업 한 다음 다음을 수행 할 수 있습니다 뭔가가 URL, 에 위치를 알아 내기 웹 사이트의 특정 페이지입니다 >> 그러므로, 다음 내가 할 일은, 내가 가져 오기입니다 모델에서 모든 정보 우리가보고 된 파일 그리고, 그래 >> 그래서, 새로운 뭔가가 오는 당신이 취급 할 때까지, 특히 데이터베이스, 지정할 수 있다는 것입니다 전에 호출되는 함수 도착 모든 요청 및 기능 이를 사용하여, 모든 요청 후에 호출 함수 장식 app

before 요청 >> 그래서이 실행 얻을 것이다 목적지이 함수이다 이 일 필요는 없습니다 요청 전에 호출, 하지만 일반적으로 그 뭔가 를 호출하는 현명한 당신은 어떤 기능을 지정할 수 있습니다 당신은 거기라는 싶어 그래서 나는이 initialize_db 지정 우리가 모델로 다시했다 기능 파일, 그래서 모든 요청하기 전에, 데이터베이스에 연결하려고합니다 >> 서로 다른 두 가지가 있습니다 방법 당신은이 작업을 수행 할 수 있습니다

당신은 @app을 수행 할 수 있습니다, 난 이 after_request 믿습니다 및 차이점 after_request 및 teardown_request, after_request 만 일어날 것입니다 요청이 실제로 유효한 된 경우 그리고, 경우에만 요청이 성공적으로 아무 잘못없는 경우 하지만 teardown_request 성공의 경우에 일어나는 요구, 또는 에러 발생시 >> 따라서, 일반적으로, 당신이 원하는 teardown_request 사용하는, 당신은하고 싶지 않는 특히 뭔가 다른, 에러의 경우

그러나 단지 데이터베이스를 폐쇄하는, , 성공 또는 실패 아닌지 우리는 당신이 분리 싶어 데이터베이스에서 그래서이 dbclose,라고 DB 객체 >> teardown_request 알 수 있습니다 예외로합니다 실제로이 있다면 그래서 당신은 확인할 수 있습니다 오류는, 폐쇄되었을 때 그러나 여기, 희망,이 오류의 전체를 많이하지 않습니다, 그래서 우리는 단지 종류의를 무시하고있다

>> 좋아, 그리고 그것의 나머지는 너무 나쁘지 않다 그래서, 우리는 홈 페이지로 갈 때, 우리는이 homehtml을 템플릿을 렌더링 즉 열립니다 패스는 게시물에 , 어떤이 동일 우리는이 게시물을 기억한다 않습니다 모델은, 그래서 우리는 모든 게시물을 선택 다음 당신이 할 수있는 또 다른 것은, 당신은 WHERE 절을 지정할 수 있습니다 당신을 지정할 수 있습니다 순서, 그리고 우리가 가지고 게시물의 모든 다음 선택 얻고, 우리는별로 주문 postdate

descending 그리고 그 지정됩니다 때 그들은 실제로, 나와 가장 최근 최초의 하나가 될 것입니다 >> 그리고, 우리는로 그 전달 homehtml을 템플릿, 그래서 실제로 열어 보자 정말 빨리 그 템플릿, 그리고 그 작동하고 방법을 살펴 그리고이 큰 HTML이 아니라 희망, 우리는 파이썬에 집중할 수 있습니다

>> 그래서 추가 새에 대한 링크가있다 포스트 등이 경로를 지정합니다 플라스크 내에서 그 우리 바로 여기 인 정의합니다 이 새 게시물의 경로입니다, 우리는 여기에을 지정합니다 그리고 그 다음 갈 것입니다 링크입니다 플라스크 서버 내에서 그 노선 >> 더 흥미로운 것은 여기에 루프 이것이다 그래서 우리는이 지정 포스트 매개 변수하는 에 전달 render_template 기능, 포스트의 모든 게시물에 대한 에 전달되는 객체입니다

우리는 인쇄 할 게시물 제목, H1에서, 다음 아래에, 우리는 인쇄 할 단락 내 포스트 텍스트입니다 >> 그리고 여기, 우리가 실제로 할 수있는 파이썬 함수를 호출, 그래서 우리의 strftime 호출 할 수 있습니다, ST-RF-시간, 당신은 형식 문자열에 전달할 수 있습니다 당신의에서 데이터를 인쇄 할 것이다 그래서 당신이 할 수있는 아주 좋은 것 실제로이 파이썬 함수를 호출 여기에 내에서 당신의 서식을 할 필요가 없습니다 제어부 측, 정말로 때문에, 날짜를 포맷하면 뭔가입니다 당신은보기 내에서 처리 할 수​​ 있습니다 >> 그리고 이러한 퍼센트의 모든 일이 매우 중요하지 않습니다

당신은 문서를 보면 파이썬에서의 strftime 함수, 모든 이러한 지정 일, 그러나의 그 어떻게, 언제 우리가 찾고 있던 여기에 홈 페이지에서, 그것은 좋은으로이 형식을 날짜, 그것은 지정 AM 또는 PM, 그러나 일반적으로, 우리의 경우 여기가 없었어요, 당신은 아마 약간의 쓰레기를 얻을 수 있습니다 아주 좋은 보이지 않았다 날짜 그리고 우리를 지정 posttext, 내가하고 수 몇 넣어 가지고 라인은 여기 나누기 각 게시물 사이에 약간의 공간을 넣어 >> 그래서, 나는 가장 중요한 생각 이 예에서 것은, 당신이 루프이 사용할 수 있다는 것입니다 그리고 이것은 유사 일 당신은 PHP로 할 수 있습니다

당신은 반복 할 수 모든이 전달됩니다 그래서, 대신 필요없이해야 할 일 복사 / 붙여 넣기, 복사 / 모든 HTML을 붙여 당신은 단지 다음 번을 작성해야하고, 당신은 모든 게시물을 반복 할 수 있습니다 >> 그리고 이것은 뭔가 당신이 원하는 것이 일반적 당신은 많은 양의 데이터가있는 경우, 수행하는, 그 데이터의 모든입니다 당신은 비슷한 일을하고 싶다 그리고, 그냥 기억 때를 그 명시 적으로 뭔가를 인쇄 할 HTML에서, 당신은 사용 여기에 이​​중 중괄호, 하지만 사용자가 지정하고자 할 때 상태에 대한 정보, 나에 대한 루프를 들어, 퍼센트 브래킷을 사용합니다 >> 그래서, 파이썬으로 다시 가고 코드는, 그래서 설명 어떤 주에서 일어나고있는 경로, 우리가 거​​기 가서, 그냥 모두 표시 게시물, 그러나 질문 어떻게 우리가 실제로받을 수 있나요된다 데이터베이스에있는 게시물 조금 더 재미있다 >> 그래서, 때 새를 클릭 우리가 여기서 본 포스트 링크, 그것은이 형태로 리디렉션

그리고는 그냥 간단한 호출이다 render_template 기능, 이는 다음 HTML 형태로 새 게시물에 전달합니다 그럼 그 살펴 보자 그래서이 사람은 아주 간단합니다 그것은 간단한 HTML 양식을 가지고있는 조금 익숙 할 것입니다, CS50 금융 양식을 기반으로 그래서, 우리는 여기에 작업을 지정합니다

그리고 여기 당신이 작업하는 경우 PHP로, 일반적으로, 그것을 과 같은 것, createPHP, 그러나 여기에서 우리는 실제로 경로를 지정 플라스크 서버 내에서 그리고,이 경로는 대응 생성 행 우리는 여기에서 가지고있는 우리는 1 초에 갈거야 >> 그래서, 우리는 그것을 지정 그것은, 포스트 방법이다 우리는 보낼 때문에 이 폼 데이터 및 보통 폼에서 데이터를 송신 할 때, 당신은 POST 요청을 사용 할 수 있습니다, 당신은 결국하지 않습니다 단지 있도록 이 크고, 다루기 힘든 URL을 하지만 당신은 또한 GET 요청을 사용할 수 있습니다, 그리고, 변수 라우팅을 건네 그러나 양식을 위해, 그것은 좋다 여기에 POST 요청에

그래서 다음, 당신을 좋아 HTML과 PHP로 할 것, 이러한 텍스트 입력을 지정할 수 있습니다, 당신은 그들의 이름을 지정할 수 있습니다, 그것은이 전달되는 이름이다 플라스크 내에서 요청 객체에 >> 그리고 우리는 제출 한 버튼 포스트는 말했다 그 그리고 여기, 포스트의 이름입니다 버튼은 블로그 포스트이기 때문에, 그러나 여기, 포스트는 요청 방법이다 그래서 그것들은 동일한 워드 아르 실제로 관련이없는 네 >> 파이썬 코드로 돌아가서, 우리는이 방법을 만들라고 할 때, 여기에 주목 당신은 할 수 실제로 경로 내에서 지정 요청 방법 수락 할 것인지, 그래서 여기에, 나는 내가를 지정 단지 포스트 방법을 적용 할 수 있습니다

그래서, 실제로 페이지를 방문하려고하면 직접, GET 요청을 사용하는, 그것은 "방법은 허용되지 않습니다"나에게 말할 것이다 >> 그래서, 당신은 종류의 같은 페이지가 난 단지 해요이 만드는 페이지, 정말 방법을 같이 사용 양식 제출 얻으려면, 당신은 당신이하지 않도록 지정할 수 있습니다 사람들이 갈 수 있도록하려면 직접 GET 요청을 통해, 또는 당신이 원하는하지 않은 경우, 어떤 이유로, POST 요청, 당신은 여기 GET 지정할 수 있습니다 그러나이 예에서는, 단지 POST 요청 외출하고 싶다 >> 그래서, create_post가 호출 될 때, 때 우리는 포스트 요청을 통해 것을 방문 당신은 특정에 갈 때마다 노선이 요청 객체가있다, 우리는 수입했다 맨 위에 요청 그러나이 요청 거기 에 전달되는 객체, 당신은 양식 데이터에 액세스 할 수 있습니다, 이는 자동으로 채워 얻을 것이다 당신은 양식에서 요청을 보낼 때 >> 그리고, 내가 무슨 생각 정말 멋진입니다 양식 객체가 전달 얻을 수 있음을 에, 그냥 파이썬 사전입니다 그렇게 여기 access– 경우,하자 포함 나 그냥 옆에 표시되는 HTML을 끌어 그래서 당신은 그것을 할 수 있습니다 참조, 예, 그래서 같은 우리가 여기에 지정하는 이름 다른 분야에 대한, 그래서 제목 및 텍스트, 우리 그럼 그냥 여기 사람들을 사용 양식 데이터의 인덱스로 그래서 매우 편리합니다

>> 그래서 우리는, postcreate를 호출하는 생성하고 자동으로 삽입됩니다 데이터베이스에이 새 게시물의 객체입니다 그리고이 함수를 만들 생각 여기에 방법에 대한 정말 멋진 예입니다 강력한 플라스크 및이와 함께 일하고있다 당신이 뭔가를하고 있다면 때문에 PHP에서, 당신은해야 할 수도 있습니다 검증을 많이 할, 당신은해야 할 것입니다 데이터베이스 연결을 수립 당신은해야 할 것입니다 SQL 쿼리를 실행, 그러나 여기에서 우리는 단지이 좋은이 postcreate, 어떤 우리는 할 수 있습니다 만 정보를 얻을 요청 객체의, 다음 새로 전달 우리가 만드는 것을 게시합니다 >> 그리고, 맨 마지막 다음 우리가하고 싶은 것은, 리디렉션하는 것입니다 집에 대한 사용자 다시

그래서 우리는이를 사용 플라스크 기능을 리디렉션합니다 그리고 뭔가 우리가 보지 못한 그 이전에,이 URL 기능이었다 그래서 기능에 대한 URL을 할 수 있습니다 실제로 이름을 전달 파이썬 코드의 기능, 오히려 특정 경로보다 그것이이에 있어요 >> 그래서 난 그냥 쉽게 할 수 슬래시 사용자를 리디렉션, 어느 집에 그것을 다시 보내지 만 것 기능이 좋은 위해 URL을 사용하여, 당신을 변경하는 경우 때문에 물건은 위치, 그래서 내가 변경한다고 가정 해 봅시다 집 대신 / 집에서 할 수 이 여전히 다음 반환 / 가정, 실제로 가서 조회 때문에 함수의 이름, 그것 해당 URL을 다시 제공 할 것입니다 >> 그래서, 일종의에 당신이있어 가정 여기서 상황을 타개 할 가능성 함수의 이름보다는이다

당신은 정말이 사용할 수 있습니다 기능에 대한 좋은 URL입니다 그리고 한 가지 알아야 할 즉, 조금 까다 롭습니다 방금 수 생각입니다 에 대한 URL에 재 호출 실제로 라우트가 모든 텍스트 및 HTML의 어떤 종류의 반환, 그래서 당신은 사실에있다 리디렉션 호출을 반환합니다 그렇지 않으면, 당신이 뭔가를 얻을 수 있습니다 유효하지 않은 문자열을 반환하지에 대한, 이러한 모든 복귀하기 때문에 HTML은 실제로 렌더링 할 >> 그래서, 당신은 리디렉션을 호출 할 때, 이 페이지로 리디렉션 하지만 실제로 HTML을 반환 당신은 리디렉션을 실행해야합니다 다시 홈 페이지로 이동합니다

그래서 우리는이 두 개의 서로 다른 견해를 가지고있다 우리는 집에 볼 수 있습니다 아니면, 내가 템플릿 말을해야 같아요 우리는이 두 가지 템플릿을 가지고, 집에 서식하는 우리의 모든 게시물을 표시하고, 우리는이 광고 일을 가지고, 이 게시물을 클릭하면, 그것은 간다 플라스크 내의 새로운 노선, 그러나 그 경로는 반드시하지 않습니다 해당 템플릿이있다 당신은 볼 필요가 없습니다 아무것도,하지만 당신은 여전히​​ 수 이 작품 가고있다 배후에

그리고 당신은 리디렉션 홈 페이지로 돌아 그리고 확실히, 그것은 작동하기 쉽습니다 템플릿에 몇 가지 더 멋진 CSS에서 이것은 훨씬 더 좋은 보이게, 하지만 주요 논리의 모든 파이썬에있다 >> 그 예에 대한 질문? 나는 많은이 알고 여러 가지가있다 진행 우리가 보지 못한 많은 것들을 전에,하지만 아무것도있다 네 >> 청중 1 : 당신은 아무것도 할 필요가 마 의 데이터를 스크럽 특수 양식에서 들어오는? 나는 "생성"당신이 방금 말한 발견 에즈라 ZIGMOND : 네, 그래서 그건 실제로, 그것은 정말 좋은 점이다

질문은 그래서, 당신을 확인하고 있는지 확인해야합니다 데이터가 유효한지 및 세정의 모든 종류의 작업을 수행 이 유효한지 확인하려면, 당신이 여기에서 볼 수 있기 때문에, 나는 그 일을하고 있지 않다 그럼 어떻게되는지 보자 나는 빈 뭔가를 게시합니다 그래서, 실제로 단지를 만들거야 빈 게시물 및 날짜 시간을 채우십시오 >> 그래서 현실에서, 당신은 아마 것 뭔가를하고 싶어, 제목이 동일한 경우는 아마 지정 빈 문자열, 다음이 작업을 수행하지 않습니다 제목이있는 경우 또는, 단지 그것을 할 빈 문자열과 동일하지

그래서 실제로 자동으로하지 않습니다 그 세정 돌봐 당신을 위해, 그래서 당신은 여전히​​ 그렇게 할 필요가있다 그래, 좋은 질문입니다 >> 청중 2 : 그것을 스크럽을합니까 속편 주입 하시나요? 당신은 알고 계십니까? >> 에즈라 ZIGMOND : 희망, peewee는 않습니다 나는 확실히 꽤있을 거라고 생각 나쁜 도서관은 그렇게하지 ​​않은 경우 나는 정확히 알지 못한다

나는보고해야 할 것이다 이 생성 된 것을 쿼리합니다 난에 입력하면, 생각 일종의 보였다 블로그 게시물 SQL 주입 공격과 같은, 이 같은,이 경우 암호 필드 또는 뭔가처럼, 당신이 뭔가를 할 수 있습니다 >> 나는 여전히 생각 문자 그대로 게시 얻을, 그러나 나는 peewee 할 않는 생각 데이터 스크러빙의 일종 실제로 그것을 실행하기 전에 >> 청중 1 : 텍스트 필드입니다 바로, 일반 텍스트를 수 있도록 설계? >> 에즈라 ZIGMOND : 네, 그렇습니다 네

그래서 나는 모든 생각, 그래서 이것은이다 올바른 동작, 즉 그렇게 할 것입니다, 하지만 난 그 peewee 생각 희망하지 않는다 자신의 말에 대한 보호의 일종 그리고 당신이 원한다면 이중 체크, 그이 쿼리를 생성하는 방법이 있습니다 그래서 당신은 필요 없어 직접 실행합니다 난을해야 할 것이다 문서를 보면, 하지만 당신은 실제로 볼 수 있습니다 이 생성하는 SQL, 그 살펴보고 및 확인 이 일을 탈출되어 있는지 확인합니다 >> 또 다른 이유는 왜 수도 SQL보고 싶지 그 peewee는 경우이며, 출력한다 일이 정말 천천히가는 것 같다 당신은 살펴보고 그것이 무엇을 볼 수 있습니다 가끔 때문에 실제로 일 실수로 쉽게 추가 할 수 에, 그런데 당신은 그것을 쓰기, 당신은 실수를 할 수 있습니다 먼저 전체 데이터베이스를 선택, 다음 어떤 종류의 작업을 수행 그에, 때 당신에게 정말 하위 집합을 선택하는 것을 의미했다

>> 그리고 상황이 아닌 경우입니다 확실히, 바로가는 이 요청에 대해 살펴하는 것이 좋다 이 실제로 발생지고있다 네 >> 청중 2 : 처음 시작했을 때, 당신은 5000 포트에 넣어 >> 에즈라 ZIGMOND : 네 청중 2 :, peewee와 기본입니다 또는 변경할 수있는 일이 있다는 것입니다? 에즈라 ZIGMOND : 예, 그래서 포트는 플라스크에 기본값입니다

당신은없이 실행하는 경우 아무것도 지정 그것은 자동으로 할 것입니다 나는 내가 가진 것, 생각 이를 재확인하고, 하지만 당신은, apprun에 그를 지정할 수 있습니다 난 당신이 뭔가를 할 수 있다고 생각 포트 = 8080 이제 진짜 빠른 시도해 보겠습니다 그래, 그래서 당신은 단지를 지정할 수 있습니다 포트 = 8080, 그리고, 거기를 실행합니다 당신이 원한다면 내가 생각하는, 그것을 실행하기 IDE에서, 나는 이것을 시도하지 않은 하지만 난 생각하면 경우 포트 8080에 달렸다 당신은 아마 수있을 것 서버에 액세스하기 위해, 당신이 웹 사이트에 대한했다 좋아한다

>> 그래,하지만 쉽게 변경 당신 경우 같은 포트 포워딩의 종류가 당신이해야 할 일 >> 다른 질문? 네? 청중 1 : 그래서, 난에서 본 당신의 당신이 언급 한 바와 같이 모델, 당신을 지정해야 각 개체에 대한 데이터베이스 당신은 아시나요, 수행 즉, 만약 정말 쉽게 SQLite는 데이터베이스의 제비가 있음 하나의 웹 응용 프로그램에 사용할, 당신은 무리를 지정할 수 있음 모델의 다른 사람? >> 에즈라 ZIGMOND : 그래, 나를 보자 진짜 빨리 그를 엽니 다 당신이하려는 경우, 당신은, 말을하는지 다른 무언가의 무리, 아마 일부, 좋아하고 학생들 이유는, 뭐 그런? 그래, 그래서 내가 생각 여전히, 각 모델 아직 단지가해야 할 것 할당 하나의 데이터베이스, 하지만 당신이 원하는 경우가합니다 다른 모델이 다른 데이터베이스 오브젝트는 할당 여기에, 당신은 확실히 그렇게 할 수 있습니다 그래서 경우에 나는 새를 만들어 이 같은, 이제이 학생은 그 , 이상한 블로그 포스트처럼 보인다 나는 지정할 수 데이터베이스는 여기 db_2과 같다

그래서, 난 그 생각 당신이 할 수있는 주요 방법 >> 시원한 다른 질문? >> 그래서 조금을 마무리합니다 비트, 여기에 몇 가지 자원이 있고, 이러한 슬라이드는 온라인으로 게시됩니다 그래서 당신은 실제로 이러한 링크를 얻을 수 있습니다 가장 좋은 자원은 정말 플라스크에 대한 설명서 스스로를 peewee 그들은 정말 잘 쓰여진하고, 나는 생각한다

그래서, 플라스크 웹 사이트는 여기이며, 그들은 퀵 스타트 자습서를 가지고 그 비슷한을 통해 안내합니다 내가 통해 걸어 무슨 일, 하지만 당신은 검토의 어떤 종류를 원하는 경우 내가 가서 물건, 또는 당신은 내가 설명하는 생각 혼란스러운 방식으로 뭔가, 그들은 거기에 비슷한 예제를해야합니다 >> Peewee는 문서를 가지고 있으며, 그들은 퀵 스타트 자습서를 가지고 즉, 주요 매개 변수를 넘어 당신이 사용하고자하는 것이다 그래서, 일이 나는 약 이야기 고유 및 지정 기본값 필드의 그 종류의 다른 당신은 그 모든이있을 것입니다, 사용할 수 있습니다 >> 또한, 당신이있는 경우 peewee에 대한 질문, 당신은, 유래에 그들을 게시 실제로 peewee을 만든 사람 계속 때로는 그 대답을 제공합니다 당신은 잘하면 문제가있는 경우 그는 그것을 대답 할 수있을 것이다 그는 전체를 썼다 때문이다

나는 그 모든 것을 생각 내가 커버하고 싶었다 와 주셔서 감사합니다