pip install flask | Flask 설치 |
flask run | 서버 실행 |
flask run --debug | 디버그 모드 |
FLASK_APP=app.py flask run | 앱 지정 |
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, World!"
if __name__ == "__main__":
app.run(debug=True) @app.route("/user/<username>")
def user(username):
return f"User: {username}"
@app.route("/post/<int:post_id>")
def post(post_id):
return f"Post: {post_id}"
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
return do_login()
return show_form() from flask import request
# Query params
q = request.args.get("q", "")
# Form data
name = request.form["name"]
# JSON
data = request.get_json()
# Files
file = request.files["file"]
file.save("uploads/" + file.filename)
# Headers
token = request.headers.get("Authorization") from flask import jsonify, redirect, make_response
# JSON
return jsonify({"status": "ok"})
# Redirect
return redirect(url_for("index"))
# Custom response
resp = make_response("Hello")
resp.headers["X-Custom"] = "Header"
return resp from flask import render_template
@app.route("/hello/<name>")
def hello(name):
return render_template("hello.html", name=name) {{ variable }}
{{ name|capitalize }}
{% if user %}...{% endif %}
{% for item in items %}...{% endfor %}
{% extends "base.html" %}
{% block content %}...{% endblock %} from flask_sqlalchemy import SQLAlchemy
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///app.db"
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120)) # Create
user = User(username="john")
db.session.add(user)
db.session.commit()
# Read
User.query.all()
User.query.filter_by(username="john").first()
User.query.get(1)
# Update
user.email = "new@example.com"
db.session.commit()
# Delete
db.session.delete(user)
db.session.commit() # blueprints/api.py
from flask import Blueprint
api = Blueprint("api", __name__, url_prefix="/api")
@api.route("/users")
def get_users():
return jsonify(users)
# app.py
from blueprints.api import api
app.register_blueprint(api)