django의 기초_정비록_그 2(사용자로부터의 POST를 받는다)

처음 뵙겠습니다 jack입니다.
8월부터 Python을 메인으로 엔지니어 업무에 종사하게 되었습니다.
거기서 어차피라면 Django도 배우면 귀신에 금봉. 구시견용고에 메리켄삭이군요.
이번에는 표제대로 사용자로부터 POST를 받는 것이 목표입니다.
이하, 참조한 사이트입니다.
환경 구축도 이쪽을 참조하면 할 수 있다고 생각합니다. 둥근 던지기에 미안해. 테헤 페로 코 츠 코 쿤
  • htps : //에서 ゔぇぺぺr. 모잖아. 오 rg / En-u S / Docs / ぇ r rn / Se r ょ r-se / D chango
  • Python3 + Django2.0 입문 - Python으로 만드는 웹 애플리케이션 개발 입문 - 그 1
    - htps //w w. 아마존. 이. jp/dp/B07Gn JW2Qn/레 f=cm_sw_에m_r_mt_dp_우_s로 sDbbXK5S8R

  • 마지막
    django의 기초 망비록 그 1(Django의 MTV를 사용해 로컬 서버에서 마음대로 텍스트를 표기시키자
    htps : // 이 m / 자 ck에 ght 드물게 13 / 있고 ms / d8911860b9에 b2d8c3 아 32
    로 아래의 디렉토리 구조까지 구축할 수 있었습니다.

    djangoApp 디렉토리
    ├── djangoApp
    │   ├── __pycache__ 
    │   ├── _init_.py
    │   ├── setting.py
    │   ├── urls.py
    │   ├── views.py
    │   └── wsgi.py
    ├── hoge
    │   ├── __pycache__
    │   ├── migrations  
    │   ├── _init_.py  
    │   ├── admin.py
    │   ├── apps.py
    │   ├── models.py
    │   ├── tests.py
    │   ├── urls.py 
    │   └── views.py
    ├── static
    ├── templates
    └── manage.py
    

    이번에는 사용자로부터 POST된 것을 어떻게 받는지 하고 싶습니다.
    우선 로그인에 사용되는 이름과 주소를 받고 싶습니다.
    이를 위해 먼저 로그인 화면을 만듭니다.

    templates/login.html
    <!DOCTYPE html>
    <html lang="ja" dir="ltr">
      <head>
        <meta charset="utf-8">
      </head>
      <body>
        <h1>下記に名前とメールアドレスを入力して送信してください</h1>
        <form action="/login" method="post">
          {% csrf_token %}
          <input type="text" name="username" placeholder="名前">
          <input type="text" name="email" placeholder="メールアドレス">
          <input type="submit" value="送信">
        </form>
    
      </body>
    </html>
    

    그리고 입력된 이름과 주소를 확인하기 위한 화면도 만들어 봅시다.

    templates/check.html
    <!DOCTYPE html>
    <html lang="ja" dir="ltr">
      <head>
        <meta charset="utf-8">
      </head>
      <body>
        <h1>POSTの受け取り成功</h1>
        <h2>名前</h2>
        <p>{{username}}</p>
        <h2>メールアドレス</h2>
        <p>{{email}}</p>
    
      </body>
    </html>
    

    그리고 입력에 오류가있는 경우의 화면도 만듭니다.

    templates/error.html
    <!DOCTYPE html>
    <html lang="ja" dir="ltr">
      <head>
        <meta charset="utf-8">
      </head>
      <body>
        <h1>入力に誤りがあります</h1>
      </body>
    </html>
    

    그리고 만든 HTML에 urls.py로 연결합니다.

    djangoapp/urls.py
    from django.contrib import admin
    from django.urls import path, include
    from . import views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('index/', views.index),
        path('hoge/', include('hoge.urls')),
        path('form', views.render_form),
        path('login', views.login),
    ]
    

    마지막으로 표시할 views.py를 편집합니다.

    djangoapp/views.py
    def render_form(request):
        return render(request, 'login.html')
    
    def login(request):
        if request.POST['username'] and request.POST['email']:
            return render(request, 'check.html',
            {"username":request.POST["username"],
            "email":request.POST['email']})
        else:
            return render(request, 'error.html')
    

    위를 저장하고 로컬 서버를 확인합니다.



    이름과 이메일에 정확하게 입력하면 ,,


    잘받을 수 있습니다.

    다음은 메일을 공백으로 해 봅시다.



    좋아요! ! !

    그럼 안녕 안녕 안녕

    좋은 웹페이지 즐겨찾기