당신의 Django에 대한 소개(2020)

13578 단어 pythondjangowebdev

소개하다.
초보자와 경험이 풍부한 웹 개발자에게 유행하는 파이톤 웹 프레임워크는 좀 두려울 수도 있다.
그러나 인스타그램, 스포티파이, 유튜브, 드롭박스, 피플레스트 등 수많은 사이트의 골간인 도잔고는 스타트업과 대기업에 성공적이고 유연하게 발전할 수 있는 멋진 도구를 제공한다.
본 소개에서는 프로젝트 강좌를 자신 있게 계속 공부할 수 있도록 Django를 간략하게 소개합니다.

배경.

네트워크 서버
웹 서버의 작업은 웹 페이지를 제공하는 것입니다.
URL에 접근할 때, 웹 서버에 HTML 문서를 요청하는 것입니다.
이론적으로, 우리는 HTML 문서를 만들기 위해 원하는 프로그램 코드를 실행할 수 있다.이것은 변수와 함수 같은 언어 특성을 사용하여 페이지를 만들 수 있도록 합니다.
그러나 끊임없는 합병 충돌이 없으면 팀 전체가 대형 사이트에서 일하기 어렵다.
Django의 해결 방안은 모델 템플릿 보기 체계 구조 소프트웨어 모델이다.
기본:
  • 템플릿에는 웹 페이지의 표시 논리(HTML)가 포함되어 있습니다.
  • 보기는 템플릿과 변수를 결합하여 페이지를 생성합니다.
  • 모델은 데이터베이스에서 보기를 얻을 수 있는 데이터에 사용할 수 있다.
  • 이 구조는 또 한 층이 있는데 그것이 바로 routes이다.라우트는 URL에서 리소스 또는 다른 라우트까지의 경로입니다.
    라우팅을 사용하면 사용자가 URL로 절대 파일 경로를 요청하지 않고도 특정 파일에 액세스하는 방법을 로직을 만들 수 있습니다.

    개시하다

    프로젝트를 하나 만들다
    Django를 설치하려면 $ pip install django을 실행하면 됩니다.
    Django가 설치되면 $ django-admin 명령과 하위 명령에 액세스할 수 있습니다.
    우리는 현재 $ django-admin startproject을 사용하여 우리의 프로젝트를 생성할 수 있다.
    현재 중요한 것은 Django가 웹 응용 프로그램을 구축하는 도구와 웹 서버를 실행하는 도구를 제공하는 프레임워크임을 확인하는 것이다.
    우리가 startproject을 실행할 때 website/ 디렉터리와 manage.py 파일을 만들었습니다.
  • website/ 디렉터리는 웹 응용 프로그램과 웹 서버 파일을 저장하는 곳입니다.
  • manage.py 파일은 명령행을 통해 웹 서버를 실행하고 관리하는 도구입니다.

  • 프로젝트 파일
    기본적으로 website/ 디렉토리에는 다음 파일이 포함되어 있습니다.

  • 초기화py:Python 패키지에 대한 자세한 정보입니다. 현재 비어 있습니다.

  • 설정py: 프로젝트 설정 및 설정 상세 정보.

  • 인터넷 주소.py: URL을 뷰의 경로 목록에 매핑합니다.

  • wsgi.py: 웹 서버와 통신하는 데 사용되는 Django 파일입니다.
  • 이론적으로 우리는 이 폴더에 views.py, models.pytemplate.html을 만들 수 있다.
    그러나 우리 프로젝트에서 응용 프로그램을 만들어서 구축을 시작합니다. 이것은 개발자의 관례이자 Django의 관례입니다.
    Django는 시작 페이지가 있는 웹 서버를 직접 실행할 수 있습니다.
    우리는 명령 $ python manage.py runserver으로 그것을 완전하게 시작할 수 있다.이것은 localhost에서 온 웹 파일을 제공할 것입니다. 기본적으로 포트 8000에 Django 사이트를 위탁 관리합니다.

    발전을 시작하다

    응용 프로그램
    Django에서 프로젝트는 응용 프로그램으로 구성되어 있으며 모든 응용 프로그램은 자신의 기능을 가지고 있다.
    이것은 우리가 하나의 폴더에서 전체 프로젝트를 개발하는 단일한 방법을 피하는 데 도움이 된다.이렇게 하는 또 다른 장점은 프로그램을 한 항목에서 다른 항목으로 직접 복사할 수 있다는 것이다.
    우리는 $ django-admin startapp을 사용하여 우리의 응용 프로그램을 생성할 수 있다.
    이것은 website/과 비슷한 응용 프로그램 디렉터리를 만들 것입니다.그러나 이 프로그램은 웹 논리에 사용되는 파일, 예를 들어 views.pymodels.py을 포함한다.

    소견
    인터넷을 빠르게 소개합시다.
    웹 페이지에 액세스하기 위해 클라이언트가 웹 서버에 HTTP 요청을 보냅니다.요청이 성공적으로 완료되면 HTML 코드를 포함하는 HTTP 응답이 반환됩니다.
    따라서 HTML로 생성된 HTTP 응답이 포함된 HTTP 응답을 반환하는 작업이 수행됩니다.
    고맙습니다. 이것은 Django의 함수 호출입니다.
    from django.http import HttpResponse
    
    def home(request):
        return HttpResponse('<h1>Hello, world!</h1>')
    

    노선.
    저희 프로젝트의 routes에서 응용 프로그램의 routes까지의 루트는 매우 간단합니다.
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('app/', include('app.urls')),
    ]
    
    애플리케이션에서 urls.py 파일을 만들어야 하며 urls.pywebsite/ 에서 파일을 복제할 수 있습니다.
    from django.urls import path
    from . import views
    
    path('', views.about, name='app-home'),
    path('about/', views.about, name='app-about'),
    
    현재,/app/about에 대한 요청은 프로젝트 루트 디렉터리에서 about 보기로 전송됩니다.

    한층 더 발전하다.

    거푸집
    템플릿은 HTML 파일일 뿐입니다.Django는 app/templates/app/\*.html에서 그것들을 찾을 것이다.render() 함수를 사용하여 뷰에 포함합니다.
    def home(request):
        return render(request, 'app/index.html')
    
    app/index.html의 내용은 다음과 같습니다.
    <!DOCTYPE html>
    <html>
    <body>
      <p>Welcome to the Home page.</p>
    </body>
    </html>
    
    Django 템플릿 언어 (DTL) 코드는 HTML 코드와 함께 던져서 변수, 명령 블록, 기타 Python 기능을 처리할 수 있습니다.
    <!DOCTYPE html>
    <html>
    <body>
      <p>Welcome to the {{ title }} page.</p>
    </body>
    </html>
    
    변수(예를 들어 title)를 템플릿에 전달하기 위해 render()은 세 번째 파라미터를 받아들인다.
    def home(request):
        return render(request, 'app/index.html', {'title': 'Home'})
    

    정적 파일
    정적 파일은 이미지와 JavaScript 파일과 같은 로컬 파일을 가리키는 경우가 많습니다.
    Django는 href에서 그것들을 찾을 것이다.app/static/app/\*.*을 로드한 후 DTL을 사용하여 정적 파일에 액세스합니다.
    { % load static % }
    
    <link rel="stylesheet" href="{% static 'blog/main.css' %}">
    

    데이터베이스 및 모델
    Django에는 자체 내장된 ORM(객체 관계 맵)이 있습니다.
    이렇게 하면 데이터베이스의 모든 인터페이스를 충당하고 서로 다른 DBMS 패키지를 사용할 수 있다는 장점이 있다.예를 들어 우리는 SQLite3을 사용하여 개발하고 PostgreSQL을 사용하여 생산할 수 있으며 코드를 변경할 필요가 없다.
    Django ORM은 데이터베이스 구조를 클래스로 나타냅니다.
    우리는 이런 종류를 모델로 사용할 것이다.블로그 게시물 모델의 예:
    class Post(models.Model):
        title = models.CharField(max_length=128)
        date = models.DateTimeField(default=timezone.now)
        content = models.TextField()
        author = models.ForeignKey(User, on_delete=models.CASCADE)
    

    이사하다
    모델을 통해 데이터베이스 구조를 편집하려면 데이터베이스를 변경할 수 있도록 이전을 실행해야 한다.
  • 마이그레이션 생성 static 실행
  • 마이그레이션을 실행하려면 $ python manage.py makemigrations을 실행하십시오.
  • 마이그레이션은 응용 프로그램의 $ python manage.py migrate 디렉토리(즉 0001 initial.py)에 저장됩니다.
    이 파일을 열어 무엇을 하는지 볼 수 있으며, migrations/을 사용하여 마이그레이션으로 생성된 SQL 조회를 볼 수 있습니다.

    패키지 관리

    요구 사항
    패키지를 수동으로 설치하지 말고, 패키지를 열거한 텍스트 파일을 보존해야 한다.
    Pip은 이 목록을 읽은 다음 자동으로 패키지를 대량 설치할 수 있습니다.$ python manage.py sqlmigrate app 0001 .
    이것은 당신과 다른 개발자를 위해 호환 소프트웨어 패키지의 서면 기록을 충당하고 새로운 기계에 배치하는 데 도움을 주는 등 많은 장점이 있다.
    Django가 분명히 필요해.너도 그곳에서 네가 원하는 다른 유용한 소프트웨어 패키지를 열거할 수 있다.

    가상적
    너는 프로젝트를 위해 가상 환경을 설정해야 한다.
    가상 환경에서는 운영 체제에서 전체적으로 설치하는 것이 아니라 프로젝트를 위한 패키지와 버전을 설치할 수 있습니다.
  • 이 설치되어 있지 않으면 $ pip install -r requirements.txt을 실행하십시오.
  • 프로젝트의 루트 디렉터리를 입력하고 $ pip install virtualenv을 실행합니다.
  • 마지막으로 $ python -m venv django-venv으로 이venv를 활성화합니다.
  • Windows 사용자는 $ source django-venv/bin/activate을 사용해야 합니다.
    이제 $ source django-venv/Scripts/activate을 사용하여 환경에 패키지를 설치합니다.
    프로젝트에서 일할 때 환경에 다시 들어가야 합니다.

    추가 비트

    Django 관리자
    관리 페이지는 사용자가 모델 중심의 인터페이스를 통해 사이트의 내용을 관리할 수 있도록 합니다.
    우선 증거를 만들어야 합니다. 기본 데이터베이스가 필요합니다.
  • 은 기본 데이터베이스를 초기화하는 $ pip install -r requirements.txt을 실행합니다.
  • 에서 $ python manage.py migrate을 실행하여 관리자 프로필을 설정합니다.
  • http://localhost:8000/admin/으로 다시 이동하여 세부 정보를 사용하여 로그인합니다.

    Django 테이블
    Django에는 공용 프로세스에 사용되는 기본 제공 양식 객체가 있습니다.$ python manage.py createsuperuserUserCreationForm, username, password1password2 필드로 구성됩니다.
    암호 해싱은 이러한 양식 객체에 내장되어 있습니다.

    마지막 말
    이것은 5분의 지침으로서 Django 내부 업무의 미래 참고가 될 수 있기를 바랍니다.
    중요한 것은 Django는 성숙한 틀로 어떤 언어와 마찬가지로 미세한 차이와 이상한 점이 있다는 것을 기억해야 한다는 것이다.너는 건설을 시작해야만 그것을 잡을 수 있다.
    우수한 프로젝트 강좌는 다음과 같은 사이트에서 찾을 수 있다.
    마지막으로 질문이나 의견이 있으시면 이 안내서에 제 대답을 써서 미래의 독자들을 도울 수 있습니다.그래서 저는 모든 피드백을 환영합니다!
    당신의 발전 여행에 행운이 있기를 바랍니다.

    좋은 웹페이지 즐겨찾기