Django 기초

kangjuju·2023년 4월 18일
0

Django

목록 보기
1/6

Django framework


초기설정

  1. Django 프로젝트 생성

    file - new - other - Django project.
    grammerVersion 3.10사용.

  • manage.py : 프로젝트 관리
  • settings.py : 설정 관리
  • urls.py : 중앙집중식. 클라이언트의 모든 요청을 여기서 받아 처리한다
  1. migrate
    django 프로젝트 우클릭 - Django - migrate

    또는 해당 django 프로젝트 경로에서 python manage.py migrate

  2. Server On
    run as - django. http://localhost:8000/ 접속확인.

    또는 해당 django 프로젝트 경로에서
    python manage.py runserver 고정아이피:포트번호 (생략가능) 로 접속링크를 지정한다.
    고정아이피는 지정시 settings에서 ALLOWED_HOSTS = ['*']를 해야함.

  • 이 방법은 매번 이러한 설정을 해야 하므로 번거롭다.
    후에도 같은 방법으로 접속하고 싶다면 여기를 참고하자
    AppData\Roaming\Python\Python310\site-packages\django\core\management\commands 에서 runserver.py 에서 default_addr항목을 수정하면 영구적으로 변경됨.
  1. application 생성 :
    우클릭 - create application 으로 application을 하나 생성.
    또는 해당 django 프로젝트 경로에서 python manage.py startapp (appname)

    생성한 app은 settings.py에 등록해야한다. 등록 후 서버 리로딩은 기본

    INSTALLED_APPS = [
       "django.contrib.admin",
       "django.contrib.auth",
    	...
       "myapp", #추가
    ]

Model Tamplate View (MTV)

spring model controller view와 유사하다

요청 받기 (View)


urls.py

  • 컨트롤러와 같은 역할. 요청명을 매핑한다.
  • 클라이언트의 요청을 받기위해 urls.py에서 생성한 App을 import하자.
from myapp import views
urlpatterns = [
    path("admin/", admin.site.urls),   
    #path('abc',views.indexFunc) # 요청:응답시 함수
    path('abc/def',views.indexFunc) 
]

abc요청이 들어왔을때 views.indexFunc 실행.
요청명 '' 으로 공백 지정시 기본페이지로 지정됨.

views.py - indexFunc

  • urls.py에서 보낸 요청명을 받고, 응답함수였던 indexFunc가 실행되었다.
from django.shortcuts import render
from django.http.response import HttpResponse

# Create your views here.
def indexFunc(request):
    return HttpResponse("장고 만세") #@responsebody와 같이 클라이언트에게 반환함

문자열 요청을 확인했으니 html출력을 위한 template를 사용해보자

template 사용


application package에 templates 하위 패키지를 생성하고, 그곳에 html을 만들자.
이제 클라이언트에서 보내온 요청명을 받고 views에서 templates를 사용해 html을 반환할 수 있다.

  • views.py
def worldFunc(request):
    msg = "홍길동"
    msg2 = "23"             #view. 반환명 : 반환객체 thymeleaf와 유사
    return render(request,"show.html",{'name':msg,'age':msg2}) #forward 기본

forwarding이 기본.

  • template html
<body>
	<h2>첫번째 장고 프로젝트</h2>
	<br>
	이름은 {{name}} 나이는 {{age}} <!-- mapping -->
	
<a href="abc">abc</a> <!-- 요청명 응용 -->
</body>

{{}} 중괄호 2겹을 사용하고, views에서 보낸 키:값을 유의하여 매핑한다.

static 사용


  • application의 하위패키지 static을 생성.
    자원관리 (css/js/images 등등) 을 이곳에서 하면 된다.

연결

<link rel="stylesheet" type="text/css" href="/static/css/test.css">
<script type="text/javascript" src="/static/js/test.js"></script>
<body>
<button onclick="abc()">클릭</button>
..

0개의 댓글