From 184eb978b7d1fc125e04b5c32ec5bc3f63828cd7 Mon Sep 17 00:00:00 2001 From: guochao Date: Sun, 28 Aug 2022 13:02:29 +0800 Subject: [PATCH] initial commit --- .dockerignore | 1 + .gitignore | 5 +++++ Dockerfile | 7 +++++++ app/__init__.py | 5 +++++ app/app.py | 3 +++ app/templates/index.html | 13 +++++++++++++ app/views/__init__.py | 3 +++ app/views/simple_views.py | 15 +++++++++++++++ requirements-dev.txt | 2 ++ requirements.txt | 2 ++ scripts/setup-env.sh | 23 +++++++++++++++++++++++ setup.py | 5 +++++ 12 files changed, 84 insertions(+) create mode 120000 .dockerignore create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 app/__init__.py create mode 100644 app/app.py create mode 100644 app/templates/index.html create mode 100644 app/views/__init__.py create mode 100644 app/views/simple_views.py create mode 100644 requirements-dev.txt create mode 100644 requirements.txt create mode 100755 scripts/setup-env.sh create mode 100644 setup.py diff --git a/.dockerignore b/.dockerignore new file mode 120000 index 0000000..3e4e48b --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.gitignore \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..72644a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +venv +__pycache__ + +.idea +.vscode \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e02af84 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM python:3.10 +ARG PYPI_MIRROR=https://pypi.tuna.tsinghua.edu.cn/simple +ENV PYPI_MIRROR=${PYPI_MIRROR} +ADD . /app +WORKDIR /app +RUN ./scripts/setup-env.sh +CMD /app/venv/bin/waitress-serve app:app \ No newline at end of file diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..b27e1a6 --- /dev/null +++ b/app/__init__.py @@ -0,0 +1,5 @@ +from .app import app + +from . import views + +__all__ = ["app"] diff --git a/app/app.py b/app/app.py new file mode 100644 index 0000000..d7562aa --- /dev/null +++ b/app/app.py @@ -0,0 +1,3 @@ +from flask import Flask + +app = Flask(__name__) diff --git a/app/templates/index.html b/app/templates/index.html new file mode 100644 index 0000000..4e306eb --- /dev/null +++ b/app/templates/index.html @@ -0,0 +1,13 @@ + + + + + A Sample Python Flask Project + + + +
A Sample Python Flask Project
+
{{now}}
+ + + \ No newline at end of file diff --git a/app/views/__init__.py b/app/views/__init__.py new file mode 100644 index 0000000..519cbf1 --- /dev/null +++ b/app/views/__init__.py @@ -0,0 +1,3 @@ +import flask + +from . import simple_views diff --git a/app/views/simple_views.py b/app/views/simple_views.py new file mode 100644 index 0000000..6bed7e1 --- /dev/null +++ b/app/views/simple_views.py @@ -0,0 +1,15 @@ +from datetime import datetime +import os +from ..app import app +from flask import Blueprint, render_template + +simple_views = Blueprint("views", __name__, template_folder=os.path.join( + os.path.dirname(__file__), "templates")) + + +@simple_views.get("/") +def index_page(): + return render_template("index.html", now=datetime.now()) + + +app.register_blueprint(simple_views) diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..7a41672 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,2 @@ +autopep8 +black diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..0131564 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +Flask<3 +waitress \ No newline at end of file diff --git a/scripts/setup-env.sh b/scripts/setup-env.sh new file mode 100755 index 0000000..a5a204a --- /dev/null +++ b/scripts/setup-env.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +SCRIPTDIR=$(dirname $0) +BASEDIR=$(dirname $SCRIPTDIR) + +pip_options=() + +if [ ! -z "${PYPI_MIRROR}" ]; then + pip_options+=(-i "${PYPI_MIRROR}") +fi + +create-venv() { + python -m venv venv +} + +install-requirements() { + pip install "${pip_options[@]}" -r requirements.txt +} + +pushd ${BASEDIR} +create-venv +. ./venv/bin/activate +install-requirements diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..a9a83da --- /dev/null +++ b/setup.py @@ -0,0 +1,5 @@ +from setuptools import setup + +setup( + "python-templates" +) \ No newline at end of file