DB 생성
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
import pytz
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blog.db'
db = SQLAlchemy(app)
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(80), nullable=False)
body = db.Column(db.String(300), nullable=False)
created_at = db.Column(
db.DateTime,
nullable=False,
default=datetime.now(pytz.timezone('Asia/Seoul'))
)
생성
@app.route('/create', methods=['GET', 'POST'])
def create():
if request.method == 'POST':
title = request.form.get('title')
body = request.form.get('body')
post = Post(title=title, body=body)
db.session.add(post)
db.session.commit()
return redirect('/')
else:
return render_template('create.html')
표현
@app.route('/', mehtods=['GET', 'POST'])
def index():
if request.method == 'GET':
posts = Post.query.all()
return render_template('index.html', posts=posts)
편집
@app.route('/<int:id>/update', methods=['GET', 'POST'])
def update(id):
post = Post.query.get(id)
if request.method == 'GET':
return render_template('update.html', post=post)
else:
post.title = request.form.get('title')
post.body = request.form.get('body')
db.session.commit()
return redirect('/')
제거
@app.route('/<int:id>/delete', methods=['GET'])
def delete(id):
post = Post.query.get(id)
db.session.delete(post)
db.session.commit()
return redirect('/')
참고
【完全版】この動画1本でFlaskの基礎を習得!忙しい人のための速習コース(Flask超入門)