40일차 django : 수업내용
예제1
/front/08_table/ 로 요청이 들엉며
tableView02 함수에서 08_table.html 페이지로 응답
내용 : 최상단 [FrontApp-Index 바로가기]
밑에는 08_table 입니다
frontapp의 index.html 페이지는 [08_table 페이지 바로가기] 추가
08_table.html에
컬럼명 : 아이디, 이름, 주소 생성
데이터 행은 1개만 추가해서 임의값 넣어 놓기
스타일은 어제 사용한 스타일 적용하기
각열의 너비 중 아이디 이름은 100 주소는 400
# 파이썬 변수 mem_id, mem_name, mem_add을 이용해서 각 변수에 값을 넣은 후 html에서 출력되도록 처리해주세요
html의 데이터
# 행을 계속 만들려면 어떻게 해야 할까 ?
딕셔너리는 한개의 행만을 의미한다.
리스트로 해줘야 한다.
for문을 이용해서 tr 태그 한개에 td의 값을 변경하면서 계속 반복시키자
{% %} 표시로 파이썬 프로그램을 사용하겠다고 표시해야한다.
#dict에 키를 추가해서 입력하고 싶다면 ?
#예제2
1. thridapp 에서 진행
/third/table/ 로 요청이 들어오면 tableView 함수에서 table.html페이지로 응답
응답 내용 최상단[ThirdApp-Index 바로가기]추가
table 생성 및 스타일 적용(예제 1과 동일)
컬럼 : 상품 아이디, 상품명, 거래처주소
행 : 5개 생성 (행마다 동일하게 편의를 위해)
thirdapp의 index.html 페이지에
[Table 페이지 바로가기] 추가
나머진 짧으니!
# 추가 설명
for문을 사용해서 행을 만들경우
Views에서 함수 선언 시에,
def ~~(request):
dict1(변수) = {키1:값,키2:값,키3:값} ( 한 개의 값들로만 이루어진 딕셔너리로, 한 행을 의미)
dict2(변수) = {키1:값,키2:값,키3:값} ( 한 개의 값들로만 이루어진 딕셔너리로, 한 행을 의미)
cont(변수) = [dict1,dict2] (딕셔너리들의 모음,type:리스트)
final_dict = {key(메인):value} 딕셔너리형식만 인식하므로
사용할 키값을 새로 정한후 값엔 우리가 위에서 정의한 cont
return render(request,'경로',final_dict)
사용할 페이지에서
{%for value(메인) in key %}를 입력해준 후에
값을 사용시엔 dict들의 키값을 입력해주어야한다.
value(메인).키1
value(메인).키2
약간 이해하기 힘들수도 있으므로, 위의 예제의 표현을 보고 이해하는 시간을 가지도록 하자.
후에 알게 되었지만 value(메인) 이라고 하는 값은 임의로 아무거나 적어줘도 된다. 대신 통일만 시켜주자.
-------
1. frontapp에서 jupyter notebook에서 sql 연습
- 기존 database 폴더의 마지막 강의 자료 사용
2. 웹에서는 .py파일만 사용가능
- 주피터 .ipynb 파일은 사용 못함
- 파이썬 파일(.py)파일로 주피터의 코드를 그대로 만들어야 함
- 만들 때 웹에서는 함수 또는 클래스 기반으로 생성 후 호출하는 방식을 사용하기에
- 함수로 모든 기능을 만들거나, 클래스로 기능을 만들어 놓아야 함
3. frontapp에 DB처리를 위한 Back-End 프로그램 처리
- 폴더 생성 : DB_sql 폴더 생성하기
- 폴더 안에 파일 생성 : member.py
#예제 3
-front/09_mem/으로 요청이 들어오면,
-mem_View() 함수에서
-member.py의 testData()의 결과값을 받아오기
- 받아온 결과 값을 09_mem.html 페이지에서 보여주기
: 가장 상단에는 [FrontApp-Index 바로가기] 추가
-frontapp의 index.html 페이지는 [09_mem 페이지 바로가기] 추가
위의 내용이 있지만, 정리가 되지 않으나 아래 예제4,5 해보게 되면 위에꺼는 다 한 거나 마찬가지이므로, 예제4,5만 다루도록 하겠다.
#예제 4
member.py 에...
*mem_list() 함수 생성
- 주피터의 Database 처리 로직 가지고 오기
- sql 구문은 아래 처럼 처리
- 조회 컬럼 : 회원이름,주문일자(0000-00-00)형태, 상품명, 조건 : 상품명에 '컴퓨터가 포함된 경우, 정렬 : 회원이름 기준 오름차순
- 최종 리턴 값은 리스트 안에 딕셔너리가 있는 데이터 값
views.py에서
-mem_list() 함수 호출해서 결과 받아오기
-받아온 결과 값을 10_mem_list.html 페이지에서 table로 보여주기
: 가장 상단에는 [FrontApp-Index 바로가기] 추가
frontapp의 index.html 페이지는 [10_mem_list 페이지 바로가기]
그림과 왼쪽의 창을 보면서 하면 알게 될것이다. sql 문은 실제로 sql에서 먼저 해본 후에 가져오는 것이 정확하며,
여기에서 확실하게 알아야 할 부분은 ! view에서 def 함수를 설정하는 부분의 위쪽을 보면
from ~ import 부분이 있는데 이 부분을 함으로써 연결 지을 수 있느냐이다.
또한, 파이썬이나 쥬피터로 확실하게 돌아가는 것을 확인한 후에 .py 파일로 옮겨서 함수화 시켜야 한다.
.py에서 파이썬이 실행되지 않으므로! 또한, sql과 css, html 등등 각각 새롭게 폴더를 만들고, 경로 설정해야하는 것도 후에 사용할 때 중요한 부분이다.
#예제 5
1. DB_sql/sql.py생성
2. sql.py에서
함수 : getMem_List()생성
조회 컬럼 : mem_id, mem_name,mem_bir
3. /second/mem_list/요청되면
getMem_List() 함수에서
sql 조회 결과 mem_list.html 에서 table형태로 출력
항상 url과 오타 조심
작성의 경우
url >> views >> 이것 저것 할 것들