Files

73 lines
2.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import os
from flask import Flask, render_template, session
import db
import security
from auth_routes import auth_bp
from project_routes import project_bp, public_projects
from request_routes import request_bp
def create_app():
app = Flask(__name__)
cfg = security.load_server_config()
app.config.update(
SECRET_KEY=cfg["secret"],
SESSION_COOKIE_HTTPONLY=True,
SESSION_COOKIE_SAMESITE="Lax",
# Üretimde HTTPS altında bu değeri True yapın:
SESSION_COOKIE_SECURE=False,
PERMANENT_SESSION_LIFETIME=86400,
MAX_CONTENT_LENGTH=60 * 1024 * 1024,
)
db.init_db()
app.teardown_appcontext(db.close_db)
app.before_request(security.before_request)
app.after_request(security.after_request)
@app.context_processor
def inject_globals():
return {
"csrf_token": security.ensure_csrf_token(),
"is_admin": session.get("role") == "admin",
"current_user": session.get("name"),
}
@app.errorhandler(400)
def bad_request(e):
return render_template("error.html", code=400, message="Geçersiz istek."), 400
@app.errorhandler(403)
def forbidden(e):
return render_template("error.html", code=403, message="Bu sayfaya erişim yetkiniz yok."), 403
@app.errorhandler(404)
def not_found(e):
return render_template("error.html", code=404, message="Sayfa bulunamadı."), 404
@app.errorhandler(429)
def too_many(e):
return render_template("error.html", code=429, message="Çok fazla istek. Lütfen biraz bekleyin."), 429
@app.errorhandler(500)
def server_error(e):
return render_template("error.html", code=500, message="Beklenmeyen bir hata oluştu."), 500
@app.route("/")
def index():
return render_template("index.html", projects=public_projects())
app.register_blueprint(auth_bp)
app.register_blueprint(project_bp)
app.register_blueprint(request_bp)
return app
app = create_app()
if __name__ == "__main__":
port = int(os.environ.get("PORT", 3000))
app.run(host="0.0.0.0", port=port, threaded=True)