python 패키지로 Django 설치하기

root/
settings.py
ALLOWED_HOSTS = ['*']
# Application definition
INSTALLED_APPS = [
'dept',
urls.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('dept/', include('dept.urls')),
path('admin/', admin.site.urls),
]
dept/
views.py
from django.shortcuts import render, redirect
dummyData=[
{'deptno':1111,'dname':'test1','loc':'test'},
{'deptno':2222,'dname':'test2','loc':'test'},
{'deptno':3333,'dname':'test3','loc':'test'},
{'deptno':4444,'dname':'test4','loc':'test'},
]
# Create your views here.
def list(req):
context={'datas':dummyData}
return render(req,"dept/list.html",context)
def add(req):
if req.method=='GET':
return render(req,"dept/add.html")
else:
# print(dir(req))
# print(req.body)
print(req.POST['deptno'])
print(req.POST['dname'])
print(req.POST['loc'])
dummyData.append({'deptno':int(req.POST['deptno']),'dname':req.POST['dname'],'loc':req.POST['loc']})
return redirect('depts')
def detail(req,deptno,**kwargs):
# print('detail param:',deptno)
context={'data':None,'title':kwargs}
for data in dummyData:
if data['deptno']==deptno:
context['data']=data
break
return render(req,"dept/detail.html",context)
urls.py
from django.contrib import admin
from django.urls import path
from dept import views
urlpatterns = [
path('', views.list,name='depts'),
path('add', views.add,name='add'),
# path('insert', views.insert),
path('<int:deptno>', views.detail,{'title':'상세'},name='detail'),
]
templates/
base/base.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Document</title>
</head>
<body>
<nav>
<a href="/">home</a>
<a href="/intro">intro</a>
<a href="/dept">dept</a>
</nav>
{% block contents %}
{% endblock %}
</body>
</html>
list.html
{% extends 'base/base.html '%}
{% block contents %}
<h2>list page</h2>
<table>
<thead>
<tr>
<td>deptno</td>
<td>dname</td>
<td>loc</td>
</tr>
</thead>
<tbody>
{% for data in datas %}
<tr>
<td><a href="{{data.deptno}}">{{data.deptno}}</a></td>
<td><a href="{{data.deptno}}">{{data.dname}}</a></td>
<td><a href="{{data.deptno}}">{{data.loc}}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="add">입력페이지</a>
{% endblock %}
add.html
{% extends 'base/base.html '%}
{% block contents %}
<h2>list page</h2>
<table>
<thead>
<tr>
<td>deptno</td>
<td>dname</td>
<td>loc</td>
</tr>
</thead>
<tbody>
{% for data in datas %}
<tr>
<td><a href="{{data.deptno}}">{{data.deptno}}</a></td>
<td><a href="{{data.deptno}}">{{data.dname}}</a></td>
<td><a href="{{data.deptno}}">{{data.loc}}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="add">입력페이지</a>
{% endblock %}
detail.html
{% extends 'base/base.html '%}
{% block contents %}
<h2>{{title.title}} 페이지</h2>
<form>
{% csrf_token %}
<div>
<input name="deptno" value="{{data.deptno}}" readonly>
</div>
<div>
<input name="dname" value="{{data.dname}}" readonly>
</div>
<div>
<input name="loc" value="{{data.loc}}" readonly>
</div>
<div>
<button>수정</button>
</div>
</form>
{% endblock %}
'100일 챌린지 > 빅데이터기반 인공지능 융합 서비스 개발자' 카테고리의 다른 글
Day 86 - django로 CRUD+login 프로그램 만들기 (2) (0) | 2024.11.29 |
---|---|
Day 85 - Django migrate (0) | 2024.11.28 |
Day 85 - Django 사용하기 (0) | 2024.11.28 |
Day 85 - python database 연동하기 (1) mysql (1) | 2024.11.28 |
Day 81 - React에서 login 프로그램 만들기 (4) Spring backend 활용하기 + Oauth (0) | 2024.11.22 |