Minimal Flask template with Campus authentication example.
- Use this template → Create a new repository
- Update project metadata in
pyproject.toml:name = "your-project-name" description = "Your description" authors = ["Your Name <you@email.com>"]
- Set up environment variables:
cp .env.example .env # Edit .env with your actual values - Install and run:
poetry install poetry run python main.py
Copy .env.example to .env and configure:
SECRET_KEY: Required for Flask session security (generate withpython -c 'import secrets; print(secrets.token_hex(32))')CLIENT_ID,CLIENT_SECRET: Campus OAuth credentials (if using Campus auth)CAMPUS_TIMEOUT,CAMPUS_MODE: Optional Campus configuration
This template includes a Campus OAuth authentication example.
Protect routes:
@app.get("/home")
@login_manager.login_required
def home():
user: User = flask.g.user
return flask.render_template('home.html', user=user)Access user data:
user: User = flask.g.user # user.name, user.email, etc.Remove Campus auth: Delete from main.py:
login_managersetup (lines 23-29)flask_campusimport (line 8)- Campus client initialization (line 21)
├── main.py # Flask app with Campus auth example
├── templates/ # Minimal HTML templates
│ ├── base.html # Base template (extend this)
│ ├── index.html # Landing page example
│ └── home.html # Authenticated page example
├── static/ # Static assets (CSS, JS)
└── pyproject.toml # Poetry dependencies
Use requirements.txt for production deployments.