장고에서 Hello, World로 놀기

마지막: 크롬 북이지만 GoogleCloudPlatform에 장고를 넣고 재생하십시오.
참고 : 장고를 가장 빠르게 마스터하는 part1

Hello, World



사랑

애플리케이션 만들기



장고의 프로젝트를 만든 것과 같은 방식으로 응용 프로그램을 만듭니다.

프로젝트의 루트 디렉토리로 이동하여 다음 명령을 실행합니다.
sudo python3.6 manage.py startapp hello
이하의 폴더, 파일이 작성된다.
apply
└ hello
   ├ admin.py
   ├ apps.py
   ├ __init__.py
   ├ migrations/
   ├ models.py
   ├ tests.py
   └ views.py

다음에 할 일을 늘어놓으면
  • views.py, models.py를 변경하여 페이지를 만듭니다.
  • settings.py에 애플리케이션을 추가합니다.
  • urls.py에서 URL과 애플리케이션 간의 연결을 정의한다.

  • 그 1 텍스트로 Hello, World



    비에ws. py



    views.py
    from django.http import HttpResponse
    
    def hello(req):
      return HttpResponse('Hello, World !!')
    

    모즈 ぇ s. py



    이번에는 사용하지 않는다.

    눈가리 gs. py



    settings.py
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    



    settings.py
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'hello',
    ]
    

    urls. py


    urlpatterns = [
        path('admin/', admin.site.urls),
    ]
    


    import hello.views
    urlpatterns = [
        path('hello/', hello.views.hello),
        path('admin/', admin.site.urls),
    ]
    

    확인



    브라우저에서 다음 URL을 엽니다.
    http://サーバの静的IP/hello/


    그 2 HTML로 Hello, World



    비에ws. py



    다음을 추가한다.
    def hello_html(req):
        src = []
        src.append('<!doctype html>')
        src.append('<html>')
        src.append('<head>')
        src.append('<meta charset="utf-8">')
        src.append('<title>Hello, World</title>')
        src.append('</head>')
        src.append('<body>')
        src.append('<h1 style="color:#F4A346;">Hello, World!!</h1>')
        src.append('</body>')
        src.append('</html>')
        return HttpResponse('\n'.join(src))
    

    모즈 ぇ s. py



    이번에는 사용하지 않는다.

    눈가리 gs. py



    전에 변경했기 때문에 OK.

    urls. py


    urlpatterns = [
        path('hello/', hello.views.hello),
        path('admin/', admin.site.urls),
    ]
    


    import hello.views
    urlpatterns = [
        path('hello/', hello.views.hello),
        path('hello_html/', hello.views.hello_html),
        path('admin/', admin.site.urls),
    ]
    

    확인



    브라우저에서 다음 URL을 엽니다.
    http://サーバの静的IP/hello_html/


    그 3 템플릿을 사용하여 Hello, World



    hello/templates/hello.html



    새 파일을 만들고 다음을 입력합니다.

    hello.html
    <!doctype html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>Hello, World !!</title>
            <style type="text/css">
                .hello {
                    color: #0F9046;
                }
            </style>
        </head>
        <body>
            <h1 class="hello">Hello, World !!</h1>
        </body>
    </html>
    

    비에ws. py



    다음을 추가한다.
    from django.shortcuts import render
    from django.views.generic import TemplateView
    
    class HelloTemplateView(TemplateView):
        template_name = 'hello.html'    
        def get(self, request, *args, **kwargs):
            context = super(TemplateView, self).get_context_data(**kwargs)
            return render(self.request, self.template_name, context)
    

    모즈 ぇ s. py



    이번에는 사용하지 않는다.

    눈가리 gs. py



    전에 변경했기 때문에 OK.

    urls. py


    urlpatterns = [
        path('hello/', hello.views.hello),
        path('hello_html/', hello.views.hello_html),
        path('admin/', admin.site.urls),
    ]
    


    import hello.views
    urlpatterns = [
        path('hello/', hello.views.hello),
        path('hello_html/', hello.views.hello_html),
        path('hello_template/', hello.views.HelloTemplateView.as_view()),
        path('admin/', admin.site.urls),
    ]
    

    확인



    브라우저에서 다음 URL을 엽니다.
    http://サーバの静的IP/hello_template/


    그 4 모델을 사용해 Hello, World



    hello/templates/hello_model.html



    새 파일을 만들고 다음을 입력합니다.

    hello_model.html
    <!doctype html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>Hello, World !!</title>
            <style type="text/css">
                .hello {
                    color: #C1002B;
                }
            </style>
        </head>
        <body>
            {% for hello in hellos %}
            <h1 class="hello">hello[{{hello.lang}}][{{hello.hello}}]</h1>
            {% endfor %}
            <h1 class="hello">hello_en[{{hello_en.hello}}]</h1>
            <h1 class="hello">hello_jp[{{hello_ja.hello}}]</h1>    
        </body>
    </html>
    

    비에ws. py



    다음을 추가한다.
    from hello.models import *
    class HelloModelsView(TemplateView):
        template_name = 'hello_models.html'
        def get(self, request, *args, **kwargs):
            context = super(TemplateView, self).get_context_data(**kwargs)
            context['hellos'] = Hello.objects.all()
            context['hello_en'] = Hello.objects.filter(lang=Hello.EN)[0]
            context['hello_ja'] = Hello.objects.filter(lang=Hello.JA)[0]
            return render(self.request, self.template_name, context)
    

    모즈 ぇ s. py



    models.py
    from django.db import models
    class Hello(models.Model):
        EN = 'en'
        JA = 'ja'
        lang = models.CharField(max_length=2)
        hello = models.CharField(max_length=64)
    

    변경 후 프로젝트의 루트에서 다음 명령을 실행합니다.python3.6 manage.py makemigrationssudo python3.6 manage.py migrate

    데이터 투입



    다음 명령으로 쉘 시작.
    sudo python3.6 manage.py shell
    쉘에서 다음 명령을 실행합니다.
    from hello.models import Hello
    Hello.objects.create(lang=Hello.EN, hello='Hello, World !!')
    Hello.objects.create(lang=Hello.JA, hello='こんにちは、皆さん!')
    

    눈가리 gs. py



    전에 변경했기 때문에 OK.

    urls. py


    urlpatterns = [
        path('hello/', hello.views.hello),
        path('hello_html/', hello.views.hello_html),
        path('hello_template/', hello.views.HelloTemplateView.as_view()),
        path('admin/', admin.site.urls),
    ]
    


    import hello.views
    urlpatterns = [
        path('hello/', hello.views.hello),
        path('hello_html/', hello.views.hello_html),
        path('hello_template/', hello.views.HelloTemplateView.as_view()),
        path('hello_models/', hello.views.HelloModelsView.as_view()),
        path('admin/', admin.site.urls),
    ]
    

    확인



    브라우저에서 다음 URL을 엽니다.
    http://サーバの静的IP/hello_models/

    좋은 웹페이지 즐겨찾기