dao_emp.py
import pymysql
class DaoEmp:
def __init__(self):
self.conn = pymysql.connect(host='127.0.0.1', user='root', password='python',
db='python',port=3304, charset='utf8')
self.curs = self.conn.cursor(pymysql.cursors.DictCursor)
def selectList(self):
sql = """
select
E_ID, E_NAME, GEN, ADDR
from emp
ORDER BY CAST(E_ID AS INTEGER)
"""
self.curs.execute(sql)
list = self.curs.fetchall()
return list
def selectOne(self,e_id):
sql = f"""
select
E_ID, E_NAME, GEN, ADDR
FROM EMP
WHERE
E_ID = '{e_id}'
"""
self.curs.execute(sql)
emp = self.curs.fetchall()
return emp[0]
def update(self,e_id,e_name,gen,addr):
sql = f"""
update emp
set
e_name = '{e_name}',
gen = '{gen}',
addr = '{addr}'
where
e_id = '{e_id}'
"""
cnt = self.curs.execute(sql)
self.conn.commit()
return cnt
def __del__(self):
self.curs.close()
self.conn.close()
urls.py
from django.contrib import admin
from django.urls import path
from HELLO_EMP import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.emp_list),
path('emp_list',views.emp_list),
path('emp_detail',views.emp_detail),
path('emp_mod',views.emp_mod),
path('emp_mod_act',views.emp_mod_act),
]
views.py
from django.shortcuts import render
import pymysql
from HELLO_EMP.dao_emp import DaoEmp
from django.views.decorators.csrf import csrf_exempt
def emp_list(request):
de = DaoEmp()
emps = de.selectList()
return render(request, 'emp_list.html', {'emps' : emps })
def emp_detail(request):
de = DaoEmp()
e_id = request.GET.get('e_id')
emp = de.selectOne(e_id)
return render(request, 'emp_detail.html', {'emp' : emp})
def emp_mod(request):
de = DaoEmp()
e_id = request.GET.get('e_id')
emp = de.selectOne(e_id)
return render(request, 'emp_mod.html', {'emp' : emp})
@csrf_exempt
def emp_mod_act(request):
de = DaoEmp()
e_id = request.POST.get('e_id')
e_name = request.POST.get('e_name')
gen = request.POST.get('gen')
addr = request.POST.get('addr')
cnt = de.update(e_id, e_name, gen, addr)
return render(request, "emp_mod_act.html",{'cnt' : cnt})
emp_mod.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
function fn_mod_act(){
document.frm.submit();
}
</script>
</head>
<body>
EMP_MOD
<form action="emp_mod_act" name="frm" method="post">
{% csrf_token %}
<table border="1">
<tr>
<th>사번</th>
<td><input type="text" name="e_id" value="{{emp.E_ID}}"/></td>
</tr>
<tr>
<th>이름</th>
<td><input type="text" name="e_name" value="{{emp.E_NAME}}"/></td>
</tr>
<tr>
<th>성별</th>
<td><input type="text" name="gen" value="{{emp.GEN}}"/></td>
</tr>
<tr>
<th>주소</th>
<td><input type="text" name="addr" value="{{emp.ADDR}}"/></td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="저장" onclick = "fn_mod_act()"/>
</td>
</tr>
</table>
</form>
</body>
</html>
emp_mod_act.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
let cnt = "{{cnt}}";
if(cnt!="0"){
alert("업데이트 성공");
location.href = "emp_list"
} else{
alert('업데이트 실패');
history.back();
}
</script>
</head>
<body>
</body>
</html>
실행화면 1- EMP_MOD

실행화면 2 - EMP_MOD_ACT


'Python' 카테고리의 다른 글
| [DJANGO] MARIA DB 연결(4) - INSERT(ADD) (0) | 2023.07.06 |
|---|---|
| [DJANGO] MARIA DB 연결(3) - DELETE (0) | 2023.07.06 |
| [DJANGO] MARIA DB 연결(1) - SELECT (0) | 2023.07.06 |
| [MariaDB] MariaDB, HeidiSQL 이용해 python과 연결하기 (0) | 2023.07.03 |
| [QT] 오목 게임 (0) | 2023.07.03 |