Django는 모두를 위한 것입니다.
Django는 "작은" 웹사이트에도 적합합니다.
사람들은 구식의 산업 강력한 모놀리스 앱을 구축하거나 API를 구축하고 프런트엔드에 React와 같은 것을 사용하기 위해 Django를 고려하는 경향이 있다고 생각합니다. 저는 평범하고 오래된 Django가 개인 웹사이트에도 훌륭한 옵션이라는 것을 말씀드리고자 왔습니다! 제 생각에는 데이터베이스가 필요하다면 Django1를 사용하는 것이 좋습니다.
왜 장고인가?
Django는 "배터리 포함" 프레임워크로 간주되며 이러한 배터리는 정말 훌륭합니다. 이것이 제가 다른 프레임워크보다 Django를 계속 사용하게 만드는 이유입니다.
ORM(객체 관계형 매퍼)
Django ORM은 프레임워크를 사용하는 큰 이유입니다. 모든 웹 프레임워크에 ORM이 포함되어 있지는 않다는 사실에 놀랐습니다. 처음부터 SQL을 작성하는 것을 좋아하는 사람이 아니라면 이것이 앱을 구축하는 올바른 방법입니다. 모델을 정의하고 해당 모델에서 데이터베이스 마이그레이션을 생성하고(대부분 자동으로) 데이터베이스에서 마이그레이션을 실행하면 모든 준비가 완료됩니다! 어설픈 모델을 작성하지 않고 스키마를 추정할 수 있는 일련의 마이그레이션을 수행합니다2. 모든 데이터에 대해 필요한 정보는 models.py 파일에 있으며 모든 것이 여기에서 흘러나옵니다.
관리자
이게 가장 큰 문제입니다. CMS가 아닙니다. ORM을 위한 GUI에 가깝습니다. 모델을 정의한 후에는 매우 적은 구성으로 CRUD 코드를 작성하지 않고도 해당 데이터를 관리할 수 있습니다. 이는 애플리케이션의 프런트 엔드가 아닙니다. (아마도) 최종 사용자를 위한 CMS는 아닙니다. 관리자가 사이트를 쉽게 변경할 수 있는 방법입니다.
점진적인 향상
이것은 내 마음에 매우 가깝고 소중하지만 나머지 업계 대부분은 잊어버린 것 같습니다. 간단히 말해서; JavaScript가 실패하더라도 기본 수준 기능은 가능해야 합니다. 앱은 프런트엔드 스크립팅 없이도 최소한 작동할 수 있어야 합니다. SPA로 그렇게 하는 것은 악몽이다. 실제 백엔드 프레임워크와 htmx 또는 Unpoly와 같은 도구를 사용하여 수행하는 것은 쉽지 않습니다. 현상유지에서 상식으로 관점을 바꾸면 됩니다.
명심해야 할 개념
MTV
기존 애플리케이션 프레임워크는 모델, 뷰, 컨트롤러 디자인 패턴을 사용하는 반면, Django는 요소의 이름을 약간 다르게 지정합니다.
- 모델
- 네, 이것도 똑같습니다.
- 템플릿
- 기존 보기와 동일합니다.
- 보기
- 이것은 기존의 컨트롤러와 대부분 동일합니다.
데이터베이스 마이그레이션
이 문제는 Django에서 해결되었습니다. 정말 좋아요! 이에 대해 알아야 할 사항이 더 많이 있으며 생성된 마이그레이션 파일을 실행하기 전에 살펴보아야 합니다.그리고 이 작업을 더 수동으로 수행해야 할 때가 있습니다. 이것이 사용의 핵심입니다:
./manage.py makemigrations # It tells you what it did. ./manage.py migrate # Database updated!
그렇습니다! ?
시작하는 방법
블레이즈.말
여기서 나만의 작은 프로젝트를 진행할 수 있습니다. 이 글을 읽고 있는 1인 개발자 여러분에게 좋은 소식은 비상업적 용도로는 무료라는 것입니다. 최종적으로 이를 사용하여 상업용 애플리케이션을 구축하는 데 도움이 되었다면 1회 $100 USD만 지불하면 됩니다. 어서, 꽤 가치가 있군요!
키트 전체를 사용하지 않더라도 코드에서 제가 사용하는 기술을 살펴보시기 바랍니다. Django를 거의 처음부터 사용해 본 결과 이는 어렵게 얻은 것입니다. Docker 및 Postgres와 함께 사용하는 단계를 거쳤지만 이것이 Django를 사용해 보고 싶어하는 99%의 사람들에게 이 방법이라고 믿습니다. SQLite는 정말 놀랍습니다.
전개
안타깝게도 이는 개인 웹사이트를 대상으로 하는 다른 옵션보다 Django를 선택할 때의 주요 단점입니다. Blaze.horse를 사용하여 쉽게 설정할 수 있도록 노력했지만 여전히 예상보다 까다롭습니다. Button, Appliku 등 나에게 희망을 주는 다가오는 프로젝트가 있지만 개인적으로 현재로서는 Fly에 만족합니다.
다음 단계
이 글을 읽고 나면 다음에 무언가를 빌드해야 할 때 Django를 염두에 두시기 바랍니다. 도움이 필요하면 알려주세요!
-
CMS가 필요하다면 Kirby를 사용하세요. CMS가 필요한 경우 확실히 정적 사이트 생성기를 사용해서는 안 됩니다. FFS ↩
-
라라벨 ↩
위 내용은 Django는 모두를 위한 것입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT
더 현명한 결정을 위한 AI 기반 투자 연구

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

ClassMethodsInpyThonareBoundTotheClassandNottoinStances

이 기사는 H5PY 라이브러리를 사용하여 HDF5 파일을 작동 할 때 데이터 세트 이름이 그룹 이름과 충돌하는 문제에 대한 자세한 솔루션과 모범 사례를 제공합니다. 이 기사는 갈등의 원인을 깊이 분석하고 코드 예제를 제공하여 이러한 문제를 효과적으로 피하고 해결하여 HDF5 파일의 적절한 읽기 및 쓰기를 보장하는 방법을 보여줍니다. 이 기사를 통해 독자는 HDF5 파일 구조를 더 잘 이해하고보다 강력한 H5PY 코드를 작성할 수 있습니다.

asyncio.queue는 비동기 작업 간의 안전한 통신을위한 큐 도구입니다. 1. 생산자는 awaitqueue.put (항목)을 통해 데이터를 추가하고 소비자는 awaitqueue.get ()를 사용하여 데이터를 얻습니다. 2. 처리하는 각 항목의 경우 queue.task_done ()을 호출하여 모든 작업을 완료하려면 queue.join ()을 기다려야합니다. 3. 소비자가 중지하도록 통지하기 위해 최종 신호로 아무것도 사용하지 않습니다. 4. 여러 소비자 인 경우 작업을 취소하기 전에 다수의 종말 신호를 보내거나 모든 작업이 처리되었습니다. 5. 큐는 설정 최대 규모의 제한 용량을 지원하고, 작업을 자동으로 매달아주고 이벤트 루프를 차단하지 않으며, 프로그램이 마침내 칸치를 통과합니다.

정규 표현식은 문자열 검색, 매칭 및 조작을 위해 Re 모듈을 통해 Python으로 구현됩니다. 1. Re.search ()를 사용하여 전체 문자열에서 첫 번째 일치를 찾으십시오. re.match ()는 문자열의 시작 부분에서만 일치합니다. 2. 브래킷 ()을 사용하여 매칭 하위 그룹을 캡처하여 가독성을 향상시키기 위해 명명 될 수 있습니다. 3. re.findall ()은 비 겹치지 않는 모든 경기를 반환하고, re.finditer ()는 일치하는 객체의 반복기를 반환합니다. 4. re.sub ()는 일치하는 텍스트를 대체하고 동적 함수 교체를 지원합니다. 5. 일반적인 패턴에는 \ d, \ w, \ s 등이 포함됩니다. re.ignorecase, re.multiline, re.dotall, re를 사용할 수 있습니다.

useys.argvforsimpleargumentAccess, whereargumentsArmanially handledandnoautomaticalvalidationorhelpisprovided.2.useargparseforrobustinterfaces, asitsupportsautomatichelp, typechecking, 옵션 values.3.argparseisReccoccondendedCOCOCOCOPLECOPLECOPLECOPLECOPLECOCLEDOUCHECCOMEDOUCHECCOCOCOCOCOPLECOCLED

이 기사에서는 Windows 환경에서 Python Multi-Process를 사용할 때 동적으로 생성 된 클래스를 아동 프로세스에 의해 올바르게 직렬화하고 사형화 할 수 없다는 문제에 대해 설명합니다. 오류의 원인을 분석 함으로써이 기사는 동적으로 생성 된 클래스를 부모 프로세스에서 정의하고 하위 프로세스에서 안전하게 사용하는 동시에 반복적 인 생성으로 인한 성능 손실을 피할 수있는 솔루션을 제공합니다.

변수 variasinpy -thenAreCreatedByAssigningAvalueusing the = 운영자, anddatatypessuchasint, float, str, bool 및 withpythonbeingdynamicallystypedsocceedOctItimeUsingType (), 그리고 whilevariaseaseaseaseaseaseaseaseaseaseaseaseaseaseaseaseaseaseaseaseaseaseasuestodife

이 기사는 Zipline을 설치할 때 Bcolz 컴파일 오류로 인한 설치 고장 문제를 해결하는 것을 목표로합니다. Cython 버전을 낮추고 get-pip.py를 사용하여 PIP를 설치하면 컴파일 오류를 효과적으로 피할 수 있습니다. 동시에, 가능한 BLOSC 오류 : '_XGETBV'오류에 대한 충돌 유형의 경우 기본 이미지를 교체하는 솔루션이 제공되어 ZipLine의 원활한 설치를 보장합니다.
