본문 바로가기

TIL

(99)
[Python] Flask 페이지네이션 #HTML {% for post in posts %} {{ post['title'] }} {% endfor %} {{ pagination.links | safe }} pagination.links Flask-paginate에서 pagination 객체를 만들어서 넘겨주면, 객체가 갖고있는 links라는 attribute가 바로 우리가 원하는 그 각 페이지로 갈 수 있는 링크 부분입니다. 내부적으로는 우리가 구현하고싶은 html 덩어리를 추상화해놓았습니다. 만약 Flask-paginate를 사용하지 않았다면 여기가 엄청 복잡해졌겠죠. 다만, safe를 걸어주어서, 안전한 객체가 전달되었으니 브라우저 상에서 실행해도 괜찮다~ 라고 브라우저를 안심시켜줘야 html 위에 보이게 할 수 있습니다. from fla..
[Python] Flask SQLite 권한 별 게시글 수정 'posts' 테이블에 Foreign key로 username을 주고 'users' 테이블의 'username' 열에 연결한다. FOREIGN KEY(username) REFERENCES users(username) 'posts' 테이블의 'username' 열이 'users' 테이블의 'username' 열을 참조한다는 것을 의미한다. 따라서 'username' 열의 값은 'users' 테이블에 존재하는 값만 가질 수 있게 된다. #models.py import sqlite3 DATABASE = 'database.db' def create_table_posts(): conn = sqlite3.connect(DATABASE) cur = conn.cursor() cur.execute(''' CREATE T..
[Python] Flask로 회원가입, 로그인 구현하기 회원가입 1. DB에 id로 쓸 username과 password를 넣어줄 users 테이블 생성 2. HTML에서 username과 password를 POST로 받아와 DB에 넣어준다. 로그인 1. POST로 username과 password를 받아온다. 2. DB에 해당 username 데이터가 있는지 확인 3. username이 있다면 password 일치 여부 확인 4.session['logged_in'] = True / session['username'] = username 을 넣어준다. 로그아웃 session에서 logged_in 과 username 키의 값을 pop 해준다. from flask import Flask, request, redirect, render_template, abort..
Discard / Stage / Unstage changes Discard changes (변경 사항 취소): 변경된 파일을 이전 상태로 되돌리는 것을 의미합니다. 작업 중인 파일의 수정 사항을 취소하고 이전 상태로 돌아가고자 할 때 사용됩니다. 주로 수정한 파일을 로컬 저장소에서 가져와서 이전 상태로 되돌립니다. 이는 수정된 내용을 커밋되지 않은 채로 제거하는 것입니다. 주로 git checkout -- 명령어와 같이 사용됩니다. Stage changes (변경 사항 스테이징): 작업 중인 파일의 변경 사항을 스테이징 영역에 추가하는 것을 의미합니다. 이는 변경된 파일을 다음 커밋에 포함시키기 위한 준비 단계입니다. 변경 사항을 스테이징 영역에 추가하면 이전과 비교하여 변경 사항이 표시됩니다. 이러한 변경 사항이 다음 커밋에 포함됩니다. 주로 git add 명령..
[Python] SQLite3 모듈 사용하기 SQLite3 모듈이란? 파이썬에서 서버 없이 로컬에서 파일로 DB를 관리할 수 있는 SQLite를 다룰 수 있는 모듈 경량화 되어 있어서 많은 소프트웨어에서 내장 DB로 많이 사용된다. SQLite3 모듈 기능 ㆍSQLite DB 생성 및 연결 ㆍSQL 쿼리 실행 ㆍ데이터 검색, 추가, 수정, 삭제 ㆍ트랜잭션 처리 SQLite3는 별도의 설치 필요없이 import를 하면 사용할 수 있다. import sqlite3 sqlite3.connect() sqlite3.connect() 함수는 DB에 연결하는 함수이다. 이 함수를 통해 DB 파일에 접속하고, 연결된 Connection 객체를 반환한다. ㆍ database : 연결할 SQLite DB 파일의 경로 ㆍ timeout : 연결 시도 시간 초과 시간 ..
[Python] Django 튜토리얼 Django Flask와 같은 웹 프레임워크의 일종이다. Django의 구조 Django는 Model - Template - View 패턴을 사용한다. MTV 패턴이란? Django는 여러개의 app을 활용하여 하나의 웹을 만들게 된다. app을 하나의 작은 페이지 단위라고 생각하면 이해하기 편하다. 전체적으로 관리해야 할 것 URL : 각 페이지의 역할을 정의한다. URL별로 어떤 template을 띄워줄 것인지 결정하게 된다. Settings : 사용가능한 app의 목록, 템플릿 등을 지정한다. app별로 관리해야 할 것 Template : 각 페이지의 기본 모습을 관리한다. (html을 활용하여 작성하게 된다.) View : request에 대한 처리 필요, 데이터베이스를 여기서 관리한다. Mode..
SQL DB & NoSQL DB SQL DB 관계형 데이터베이스 모델을 사용하여 데이터 간의 관계를 정의하고 관리하는 데이터베이스 데이터 간의 관계를 행(row)과 열(column)로 구성된 테이블로 저장한다. SQL DB 특징 테이블 기반 구조 ㆍSQL 데이터베이스는 하나 이상의 테이블로 구성됨. ㆍ 각 테이블은 행(row)과 열(column)으로 구성됨 - 행은 테이블에 저장된 개별 데이터 레코드를 나타내고, 열은 각 레코드에 대한 속성을 나타냄 스키마(Schema) ㆍ각 테이블은 DB의 스키마에 따라 정의된다. ㆍ스키마는 테이블의 구조, 각 열의 데이터 유형, 제약 조건 등을 정의한다. SQL 쿼리 ㆍSQL DB는 SQL을 사용하여 데이터를 조작한다. ㆍSQL은 데이터를 검색(SELECT), 삽입(INSERT), 수정(UPDATE..
[자료구조] 최소 신장 트리(Minimum Spanning Tree) 신장트리(Spanning Tree) Spanning Tree 특징 최소 신장 트리(MST, Minimum Spanning Tree) Kruskal MST 알고리즘 Prim MST 알고리즘 신장 트리(Spanning Tree) 그래프 내의 모든 정점을 포함하는 트리 그래프의 n 개의 정점을 모두 연결하는 최소 간선의 수는 (n-1) 개이고, 이때 이루어진 그래프를 최소 연결 부분 그래프 Spanning Tree라고 한다. 즉, 그래프에서 일부 간선을 선택해서 만든 트리 Spanning Tree 특징 DFS, BFS를 이용하여 그래프의 신장 트리를 찾을 수 있다. 하나의 그래프에는 많은 신장 트리가 존재할 수 있다. 신장 트리는 모든 정점들이 연결되어 있어야 한다. 신장 트리는 사이클을 포함해서는 안된다. ..
[자료구조] 그래프의 표현(인접행렬, 인접리스트) 인접 행렬은 모든 노드를 표현하고 각 노드의 연결 상태를 나타낸다.2차원 배열을 활용하여 그래프를 표현하는 방식인접 리스트는 실제로 연결된 노드들만 저장하기 때문에 간선의 개수와 비례하는 만큼만 메모리를 차지한다.인접 리스트를 활용하여 표현하는 방식인접 행렬 (Adjacency Matrix)인접 행렬이란, 그래프의 연결 관계를 행렬로 표현하여 이차원 배열로 나타내는 방식을 의미한다.adj[i][j] : 노드 i에서 j로 가는 간선이 존재할 경우 1, 아니면 0 만약 표현하고자 하는 그래프가 방향이 없는 무향 그래프의 경우 노드 i에서 노드 j로 가는 길이 존재하면 노드 j에서 노드 i로 가는 길 또한 존재한다.이러한 특성으로 인접 행렬을 구현할 경우, 대각 성분을 기준으로 대칭인 성질을 가지게 된다.1...
TCP / UDP 특징과 차이 TCP란? Transmission Control Protocol의 약자로 전송을 제어하는 규약이라는 뜻 Internet 상에서 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 규약 TCP는 패킷(Packet)을 추적 및 관리하고 IP 는 데이터의 배달을 처리한다. 패킷(Packet) 인터넷 내에서 데이터 전송을 위한 라우팅을 효율적으로 하기 위해 나누어진 조각들을 뜻한다. TCP의 동작 과정 TCP는 3단계의 과정을 거쳐 연결을 설정하고, 데이터를 전송한 후 연결을 종료합니다. 연결 설정 (3-way handshake) SYN: 초기 연결 요청 SYN + ACK: 연결 요청 수락 및 응답 ACK: 최종적으로 연결 완료 데이터 전송 데이터 패킷 전송 및 수신 확인 (ACK) 연결 종료 (4-way..