Django 프로젝트 생성
file - new - other - Django project.
grammerVersion 3.10사용.
migrate
django 프로젝트 우클릭 - Django - migrate
또는 해당 django 프로젝트 경로에서 python manage.py migrate
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항목을 수정하면 영구적으로 변경됨.application 생성 :
우클릭 - create application 으로 application을 하나 생성.
또는 해당 django 프로젝트 경로에서 python manage.py startapp (appname)
생성한 app은 settings.py에 등록해야한다. 등록 후 서버 리로딩은 기본
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
...
"myapp", #추가
]
spring model controller 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를 사용해보자
application package에 templates 하위 패키지를 생성하고, 그곳에 html을 만들자.
이제 클라이언트에서 보내온 요청명을 받고 views에서 templates를 사용해 html을 반환할 수 있다.
def worldFunc(request):
msg = "홍길동"
msg2 = "23" #view. 반환명 : 반환객체 thymeleaf와 유사
return render(request,"show.html",{'name':msg,'age':msg2}) #forward 기본
forwarding이 기본.
<body>
<h2>첫번째 장고 프로젝트</h2>
<br>
이름은 {{name}} 나이는 {{age}} <!-- mapping -->
<a href="abc">abc</a> <!-- 요청명 응용 -->
</body>
{{}}
중괄호 2겹을 사용하고, views에서 보낸 키:값을 유의하여 매핑한다.
연결
<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>
..