1. 모델 작성하기 카테고리 안에 여러 게시물이 있고, 한 유저는 여러 게시물을 작성할 수 있다. [카테고리/유저 - 게시물]은 일대다 관계이다. post_user -> user_id post_category -> category_id # models.py class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(200), nullable=False) content = db.Column(db.Text(), nullable=False) created_at = db.Column(db.DateTime(timezone=True), default=func.now()) author_id = db.Colu..
flask-admin으로 관리자 페이지 만들기 설치 pip3 install flask-admin # __init__.py from flask import Flask from flask_sqlalchemy import SQLAlchemy from os import path from flask_login import LoginManager from flask_admin import Admin # 이 줄 추가 def create_app(): # app = Flask(__name__) # app.config['SECRET_KEY'] = "IFP" # DB 설정하기 app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{DB_NAME}' # DB 관련 추가 설정 app.co..
로그인, 회원가입 form의 POST form의 method를 POST로 바꿔주고, 회원가입창에서 sign up을 누르면 요청이 이루어진다. # auth.py @auth.route("/login", methods=['GET', 'POST']) def login(): return render_template("login.html") @auth.route("/sign-up", methods=['GET', 'POST']) def sign_up(): return render_template("signup.html") 응답상태(200)로 만들기 위해 auth 파일의 method도 수정해준다. request로 form에서 데이터 받아오기 input 태그에서 name 속성은 form이 제출된 후 서버에서 데이터를 참..
📄 render_template (html 연결) from flask import Blueprint, render_template views, auth 파일의 import 부분에 render_template를 연결해준다. def home(): return render_template("home.html") 함수의 return 부분에 연결해주면 괄호 안에 html이 연결된 것이다. Bootstrap https://startbootstrap.com/theme/clean-blog에서 미리 만들어진 html 템플릿을 다운받아 적용해보려 한다. html 파일들을 모두 template 폴더에 넣어주고 실행하면 아래 화면이 나온다. 👇 다운받은 html 파일들은 head, nav, footer부분이 반복되는 형태인 ..
vscode 터미널에서 설치 pip3 install flask pip3 install Flask-SQLAlchemy pip3 install flask-login 📁 __init__.py 파일 만들기 from flask import Flask from flask_sqlalchemy import SQLAlchemy from os import path from flask_login import LoginManager def create_app(): app = Flask(__name__) app.config['SECRET_KEY'] = "helloworld" @app.route("/") def home(): return "hello" return app website 폴더 안에 파일을 만들고 위의 코드를 입력한..
Python DB API (PEP 249) 📕 Python DB API는 파이썬에서 여러 데이터베이스를 엑세스하는 표준 API이다. 표준 API는 데이터베이스 연결, SQL문 실행, 연결 닫기 등의 기본적 DB작업과 관련된 기능을 정의하고 있다. 📕 PEP(Python Enhancement Proposal)은 python 모듈 간의 유사성을 장려하기 위해 정의되었다. * API(Application Programming Interface): 두 애플리케이션 간의 상호작용 방법을 정의한 인터페이스 SQLite3 📕 서버가 아닌 응용 프로그램에 넣어서 사용하는 lite한 데이터베이스관리시스템이다. ✔️ SQLite3 모듈은 파이썬이 설치될 때 기본적으로 설치되는 표준 라이브러리로, SQLite에 대한 인터페..
라우팅 (routing) 📕 주소를 입력해서 들어온 요청을 담당하는 담당자는 함수이고, 요청을 연결하는 작업을 라우팅이라고 한다. @app.route('/') def Index(): return 'Index Page' 데코레이터 route 변수 규칙 📕 주소에서 가변적인 부분을 변수라고 한다. 변수를 사용할 땐 처럼 쓰고, 형변환이 필요할 땐 앞에 자료형을 써준다. 변수를 받아내는 매커니즘이 함수의 매개변수로 전달된다. (변수와 매개변수는 같은 이름이어야 함.) @app.route('/user//') def user_profile(username): print(username) return 'User ' + username @app.route('/post//') def show_post(post_id):..
1. 파이썬 설치 후 확인 python --version python3 --version python -v python -v py --version py3 --version * 맥에서는 python 말고 python3으로 확인해야 한다. 2. vscode에서 파이썬 설치 3. 가상 환경 설치 venv 라는 가상환경을 설치하기 위해 아래의 명령어를 작성한다. python3 -m venv venv 4. 인터프리터 설정 f1으로 창 띄우고 > interpreter 검색 후 클릭 > 아래 경로 클릭 > 새 터미널을 다시 생성하면 아래처럼 뜬다. 5. 플라스크 설치 pip install flask 6. 웹 생성 app.py 파일 생성 후 아래 코드를 복붙한다. from flask import Flask app =..