본문 바로가기

Python/Django Ⅰ9

DJANGO CRUD : C(Create), R(Read) 1. 상황 : 특정 페이지에서 글을 등록하고 게시하고자 함.2. 코드설명  (1) onememos 라는 하위 앱을 생성하였음.   (2) models.py : DB 테이블설계 > onememos 하위앱의 Memo_TB 테이블 클래스 생성from django.db import modelsclass Memo_TB(models.Model): memo_text = models.CharField(max_length=250) #문자형 필드 : models.데이터타입, 최대길이 200 writer_nm = models.CharField(max_length=20) writer_mail = models.CharField(max_length=30) published_date = models.DateT.. 2024. 5. 7.
Get / Post 방식 1. 기본개념 : get 과 post 는 HTTP 프로토콜을 통해서 서버에 어떤 값을 전달 할 때 사용하는 방식의 종류. 즉, 어떻게 전달하나의 차이.2. 기본차이 : URL에 파라미터 값으로 데이터를 전달하면 Get방식, Post 방식은 URL에 파라미터 정보가 보이지 않는다. 그 이유는 Request Body에 포함되어 전달되기 때문에 파라미터 노출이 되지 않음.3. GET 방식이 속도면에서 더 좋음 4. GET 방식은 조회, 검색 시 많이 사용 5. GET 방식은 캐시가 남아있고 브라우저의 히스토리에 파라미터 정보가 저장되어서 좋지 않을수있음6. POST 방식이 보안면에서 더 좋음7. POST 방식은 입력(생성), 수정(변경), 삭제 시 많이 사용 8. POST 방식은 값을 숨겨서 전달할 수 있음... 2024. 5. 7.
CSRF_TOKEN 과 DB 입출력 □ 장고는 CSRF (Cross Site Request Forgery)와 위조방지를 위해 자체적으로 토큰을 발행하는데 이를 CSRF_TOKEN 이라고 함. □ 반드시 데이터를 요청할 때, 즉, 사용자의 request가 발생하면 이와 함께 CSRTF_TOKEN을 함께 보내어 위조를 방지함. □ 보통은 템플릿 상의 Form 태그 내에 {% crtf_token %} 이라고 코딩함. {% csrf_token %} □ 토큰을 바탕으로 장고 프레임워크에서는 자동으로 유효성 검증 후 적절한 View를 연결함. Onememo Form {% csrf_token %} 한줄메모 이름 이메일 등록 □ Html 코드를 보면 memo, name, email을 입력받는 form 태그 네임을 memowriteform으로 지정했음. .. 2024. 4. 15.
SQLite 를 활용한 DB 조회 □ https://sqlite.org/download.html 접속하여 환경에 맞는 파일 다운. □ 압축을 푼후 db.sqlite3 또는 sqlite3.exe 파일을 프로젝트 폴더 안에 위치. . □ cmd 명령어 python manage.py dbshell □ 테이블 목록조회 .table □ 앱의 models.py에서 지정한 객체명을 활용한 테이블명 조회. ex) hello라는 앱을 생성 후 models.py에서 테이블 객체를 abc_tb 로 정의 했다면, 테이블명은 'hello_abc_tb' 임. 2024. 4. 15.
서브페이지 URLPATTERNS □ 사진과 같이 onememos라는 앱을 생성하였고, 앱에 대한 메인 url과 서브 url을 지정하였음. *app 생성이 되면 부모폴더와 달리 urls.py가 없으므로 직접 수동으로 생성해줘야함 app 메인 url = "" http://localhost:*****/onememos/ app 서브 url = "서브url명/" *서브 url명은 app의 views.py에서 지정한 함수명으로 지정 http://localhost:*****/onememos/서브url명 #라이브러리 from django.urls import path from . import views urlpatterns = [ #path(1."", 2.어떤 것, 즉, view 파일에서 정의한 함수, name="대표키워드") #"" 웹 주소~~(h.. 2024. 4. 15.
Models 생성 Django 모델(Models)란? □ 프로젝트에서 애플리케이션(App)을 생성하고, 앱(APP) 기능 별 여러 데이터 값들을 생성, 수정, 삭제, 저장등을 위한 데이터 관리를 위해 테이블 객체를 생성하는데 이를 위한 것이 모델(Models)임. □ 그래서 우리는 해당 모델을 사용하여 테이블을 생성하기전에 데이터를 어떻게 처리할지 고민해야함 □ 우리는 프로젝트 생성 후 관리자, 즉, 슈퍼유저(admin)를 만들기위해 기본 테이블이 필요하여 생성전에 유저 데이터들이 저장될 수 있는 테이블을 생성했음. python manage.py migrate □ 위 코드를 실행하여 프로젝트 생성시 필요한 기본적인 테이블과 앱들을 설치했으며, 설치된 앱들은 모두 환경설정폴더에 모두 저장되었고, 환경설정 폴더는 최상위 폴더.. 2024. 4. 13.
Django 주요개념 : 정리 1. Framework 프레임워크 (1) 장고는 파이썬으로 개발된 오픈 소스 웹 프레임워크 (2) 기본적으로 모델(Model) - 뷰(View) - 템플릿(Templete) 패턴을 따름. 요소별 역할과 기능이 있음. 또한 각 요소는 서로의 역할에 침범하지 않음. 즉, 업무를 나눔. - 모델 - 템플릿는 웹 페이지 - 뷰는 사용자가 요청에 따른 응답을 위한 처리역할 (3) 데이터베이스와 연동된 웹사이트 개발을 초보자라도 편리하고 쉽게 개발할 수 있도록 해주는 것을 목표로함. (4) 장점 - 기본적으로 틀을 생각하면됨 - 규칙과 가이드대로 개발하며 초보자로 품질(Quality)높은 웹사이트로 개발 가능 - 안정성, 통합성, 유지보수, 효율성, 단축성, 확장성 등 일관성 있게 추진 가능 - 유지보수 등을 위한.. 2024. 4. 11.
가상환경 설치 & 장고 설치+삭제 & 서버구동 + superuser 생성 1. cmd > 설치 파이썬 버전 확인 python 입력 2. 가상환경 구축 > 구축 가상환경 디렉토리 진입 > 활성화 > 장고설치 - 구축 1 : python -m venv 가상환경명 - 구축 2 : pip install vitualenv & vitual 가상환경명 3. 가상환경 디렉토리 이동 > Scripts 디렉토리 > activate.bat 실행 > 가상환경 안에서 pip install Django 4. 장고 버젼 확인 - python 파일 생성후 import Django & print(djongo.get_version()) - python -m django -- version 5. 가상환경 빠져나오기 : deactivate 6. 장고프레임워크 삭제 - md 디렉토리명 - rd 디렉토리명 - /s.. 2024. 4. 8.
장고란?(feat.MTV모델) □ 마감시간이 있는 완벽주의자를 위한 웹프레임워크 □ 바퀴를 다시발명하지마라 ○ 초기 학습비용은 있지만 매번 새롭게 바퀴를 재발명 안함 ○ 장고라는 바퀴를 잘굴려 빠르고 정확하게 동작하는 에플리케이션 개발 ○ 백엔드 개발에 필요한 거의 모든 기능을 장고중심으로 제공 □ 시간은 가장 큰비용으로!! 장고를 누리고 시간을 아껴라 ○ 고유한 개념 및 데이터는 한곳에, 하나만 조재 ○ 중복 X, 정규화 OK ○ 장고를 통해 중복없는 고유한 개념/데이터로 최대한의 기능을 만듬 □ 신속한 개발 추구 ○ 느슨한 결합 탄탄한 응집 ○ 프레임워크의 각 계층은 필요하기전에는 서로 결합이 없어야함, Best Practice 제안구현은 있지만 강제는 아님 □ 적은코드 / 반복하지 않음 ○ 중복줄이고 정규화 지향 ○ 명시적인 묵.. 2024. 2. 4.