image_id = sa.Column(sa.Integer, sa.ForeignKey("myimagemodel.id"), nullable=False) image = orm.relationship("MyImageModel") filter_spec = sa.Column(sa.Text) db = Database("sqlite:///") db.create_all() app = Starlette(debug=True) app.mount("/fs", StaticFiles(directory=root_directory, check_dir=False), name="fs") templates = Jinja2Templates(loader=jinja2.FileSystemLoader(templates_path)) @app.route("/") class Homepage(HTTPEndpoint): async def get(self, request): return templates.TemplateResponse("home.html", {"request": request}) async def post(self, request): form = await request.form() saved_file = MyImage.create_from(form["file"].file, form["file"].filename) image = MyImageModel(file=saved_file) image.save()
from starlette.authentication import AuthCredentials, AuthenticationBackend, SimpleUser from starlette.middleware.authentication import AuthenticationMiddleware from starlette.middleware.sessions import SessionMiddleware from starlette.staticfiles import StaticFiles from starlette_admin.config import config from starlette_admin.site import AdminSite from starlette_core.database import Database, DatabaseURL from starlette_core.middleware import DatabaseMiddleware from starlette_core.templating import Jinja2Templates from .admin import AuditAdmin, ChildAdmin, ParentAdmin DEBUG = True templates = Jinja2Templates(loader=jinja2.ChoiceLoader([ jinja2.PackageLoader("starlette_admin", "templates"), jinja2.PackageLoader("starlette_audit", "templates"), ])) # config starlette_admin.config.logout_url = '/auth/logout' starlette_admin.config.templates = templates starlette_auth.config.change_pw_template = "starlette_admin/auth/change_password.html" starlette_auth.config.login_template = "starlette_admin/auth/login.html" starlette_auth.config.templates = templates url = DatabaseURL("sqlite:///example/db.sqlite3") db = Database(url) db.create_all() # create an admin site
from html import unescape from os.path import dirname, join, realpath import jinja2 from starlette.applications import Starlette from starlette.middleware.sessions import SessionMiddleware from starlette.responses import RedirectResponse from starlette.testclient import TestClient from starlette_core.messages import message from starlette_core.templating import Jinja2Templates templates_directory = join(dirname(realpath(__file__)), "templates") templates = Jinja2Templates( loader=jinja2.FileSystemLoader(templates_directory)) def add_message(request): message(request, "Hello World") return RedirectResponse("/view", status_code=302) def view_message(request): context = {"request": request} return templates.TemplateResponse("message.html", context) def create_app(): app = Starlette() app.add_route("/add", add_message) app.add_route("/view", view_message)
class AppConfig: templates: Jinja2Templates = Jinja2Templates( loader=jinja2.PackageLoader("starlette_admin"))
import jinja2 from starlette_core.templating import Jinja2Templates templates = Jinja2Templates(loader=jinja2.FileSystemLoader("templates"))
import pytest from sqlalchemy_utils import create_database, database_exists, drop_database from starlette.applications import Starlette from starlette.authentication import requires from starlette.middleware.authentication import AuthenticationMiddleware from starlette.middleware.sessions import SessionMiddleware from starlette.responses import JSONResponse from starlette.testclient import TestClient from starlette_core.database import Database, DatabaseURL, Session from starlette_core.templating import Jinja2Templates import starlette_auth from starlette_auth.tables import User # basic config for auth app starlette_auth.config.templates = Jinja2Templates( loader=jinja2.FileSystemLoader("tests/templates")) starlette_auth.config.login_template = "form.html" starlette_auth.config.change_pw_template = "form.html" starlette_auth.config.reset_pw_template = "form.html" starlette_auth.config.reset_pw_done_template = "thanks.html" starlette_auth.config.reset_pw_email_subject_template = "password_reset_subject.txt" starlette_auth.config.reset_pw_email_template = "password_reset_body.txt" starlette_auth.config.reset_pw_confirm_template = "form.html" starlette_auth.config.reset_pw_complete_template = "thanks.html" url = DatabaseURL("sqlite://") db = Database(url) @pytest.fixture(scope="session", autouse=True) def database():