일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- decorator
- PIP
- selenium-wire
- 생각
- r-string
- Airflow
- sort(reverse=True) v.s. reverse
- Python
- 쿼리
- slicing [::-1]
- 고차함수
- functools.wraps
- 순수함수
- blinker
- 코딩 테스트
- 함수형 프로그래밍
- OS
- [초급(예비) 개발자 오픈소스 실무 역량강화 교육]
- pandas
- os.path
- boto3
- timestamp
- ds_store
- reverse v.s. reversed
- CI/CD
- S3
- sort v.s. sorted
- Today
- Total
공부일지
230317_DB연동을 위한 oracleapp 생성 및 웹 서버 연결 확인 본문
230317
참고.
<cx_Oracle 안 되는 경우>
>시스템 환경변수 편집
환경변수>시스템 변수>새로만들기>instantclient 21_9폴더 경로 추가>컴퓨터 다시시작
* 가상환경 하나 당 커널 이름 하나(고유커널)
* router.py는 따로 관리
-label, return 에 오는 db명 바꿔주면 계속 쓸 수 있음
django-admin startapp oracleapp
==
1교시
>config
>
>oracleapp
>views.py
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def cartList(request):
return HttpResponse('잘 보인다~')
>urls
from django.urls import path
from . import views
urlpatterns = [
# http://127.0.0.1:8000/oracle/cart_list
path('cart_list/',views.cartList),
]
===
2교시
oracleapp>model.py
from django.db import models
from django.db.models.fields import CharField
from django.db.models.fields import IntegerField
# Create your models here.
# 클래스 이름: 보통 테이블명과 똑같이 씀(규칙), 변수도 컬럼명과 똑같이 설정
class Cart(models.Model):
cart_no=CharField(primary_key=True, max_length=13, null=False)
cart_prod=CharField(max_length=10, null=False)
cart_member=CharField(max_length=15, null=False)
cart_qty=IntegerField(max_length=8, null=False)
# 내부 클래스
class Meta:
# 실제 사용할 테이블 이름
db_table='cart'
# app 이름(router.py에 설정한 앱 이름과 동일)
app_label='oracleapp'
# managed : db에 실제 테이블이 존재하는지 여부 파악
# -존재하면 False
# -DB 설계에 따라 만들어진 DB 사용하기에
# -일반적으로 False를 지정
managed=False
>views
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
# 테이블
# import models
#- 이 경우: models.Cart 하면 됨
from .models import Cart
# cart 테이블 전체 조회
def cartList(request):
# 1. 모델을 통해 데이터 조회
# 조회결과를 받아올 변수 정의
# objects: 객체, 여기서는 col을 뜻함
cart_list=Cart.objects.all()
return HttpResponse('잘 보인다~')
==
정리
1.oracleapp 생성
2.router.py 추가
3.models.py에 Cart 클래스 생성
4.views.py에서 models.Cart 호출
-전체 조회 Cart.objects.all()
5.특정 app의 모델과 실제DB 연결
-명령 순서(형상관리 쪽이라 오류가 많이 발생하는 부분이다. 형상관리 : 민감)
-특정 app의 모델이 변경(수정/추가/삭제)되면 아래 수행
서버 중지한 뒤
>python manage.py makemigrations oracleapp
*migration 안 되면 폴더 삭제 후 다시 위 명령어 반복
>python manage.py migrate
==
3교시
>python manage.py runserver
6.oracleapp에 templates\oracleapp\cart 폴더 생성
-cart_list.html 생성
7.views.py에 cartList() 함수에서 render() 생성
-html 페이지 호출
-모델을 통해 조회한 cart_list 변수를 html에 출력
==
4교시
member table 생성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>::: 회원 정보 목록 :::</title>
</head>
<body>
<h3>회원 정보 목록</h3>
<hr/>
<!-- {{cart_list}} -->
<table border="1">
<tr>
<th>회원 아이디</th>
<th>회원 비밀번호</th>
<th>회원 이름</th>
</tr>
{% for member in mem_list %}
<tr>
<td>{{member.mem_id}}</td>
<td>{{member.mem_pass}}</td>
<td>{{member.mem_name}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
>models
from .models import Cart, Member
>views
def memberList(request):
mem_list=models.Member.objects.all()
return render(request,
"oracleapp/mem/mem_list.html",
{'mem_list':mem_list})
>cmd
서버 중지한 뒤
>python manage.py makemigrations oracleapp
*migration 안 되면 폴더 삭제 후 다시 위 명령어 반복
>python manage.py migrate
>python manage.py runserver
**클래스 추가 후 테이블.html 생성 시마다 migrate 해주기
==
5교시
django 여러 feild 설명
참고 : https://velog.io/@qlgks1/Django-Model-%ED%95%84%EB%93%9Cfiled-%EB%AA%A8%EC%9D%8C%EC%A7%91
8.member테이블도 동일하게 위와 같이 처리
==
9. cart_list에서 [주문번호] 클릭 시 상세페이지로 가기
-주문번호 링크 생성
-링크 클릭 시 cart/cart_view.html 페이지에
-[주문번호와 상품코드]값을 전달해 출력되게 처리....
-함수 이름 : cartView()
-url : cart/cart_view
10.
compiler-코드 해석=>그냥 문자열로 해석(하나의 규칙대로 움직이는 것)
parser-브라우저가 코드 해석=>이 때에서야 html이구나 판단(태그확인)
'Computer > 공부정리' 카테고리의 다른 글
230321~230323_수업메모만 (0) | 2023.03.23 |
---|---|
230320_웹 수정 페이지 생성 (0) | 2023.03.20 |
230316_웹 DB 연동 위한 DB 준비 (0) | 2023.03.16 |
230314_include 폴더, 로그인 화면(입력, 확인), DB 준비 (0) | 2023.03.14 |
230313_django_html 반복문, static 및 완충용 가상환경 생성 (0) | 2023.03.13 |