mirror of
https://github.com/tebarius/Docker-Flask-QR.git
synced 2025-12-21 06:33:29 +01:00
css,mail,tel,url,calendar fertig
This commit is contained in:
20
.idea/runConfigurations/Dockerfile_Raspi.xml
generated
Normal file
20
.idea/runConfigurations/Dockerfile_Raspi.xml
generated
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="Dockerfile-Raspi" type="docker-deploy" factoryName="dockerfile" server-name="Docker-RasPi">
|
||||||
|
<deployment type="dockerfile">
|
||||||
|
<settings>
|
||||||
|
<option name="imageTag" value="flask-qrcode-gen:latest" />
|
||||||
|
<option name="containerName" value="flask-qrcode-gen" />
|
||||||
|
<option name="portBindings">
|
||||||
|
<list>
|
||||||
|
<DockerPortBindingImpl>
|
||||||
|
<option name="containerPort" value="80" />
|
||||||
|
<option name="hostPort" value="8002" />
|
||||||
|
</DockerPortBindingImpl>
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
<option name="sourceFilePath" value="Dockerfile-RasPi" />
|
||||||
|
</settings>
|
||||||
|
</deployment>
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
||||||
74
.idea/workspace.xml
generated
74
.idea/workspace.xml
generated
@@ -4,18 +4,23 @@
|
|||||||
<option name="autoReloadType" value="SELECTIVE" />
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="3fdfc273-527d-4717-bd6d-4ba98fba7555" name="Changes" comment="">
|
<list default="true" id="3fdfc273-527d-4717-bd6d-4ba98fba7555" name="Changes" comment="css,mail,tel,url,calendar fertig">
|
||||||
<change afterPath="$PROJECT_DIR$/app/requirements.txt" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/.idea/runConfigurations/Dockerfile_Raspi.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" />
|
<change afterPath="$PROJECT_DIR$/app/static/style.css" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/app/templates/base.html" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/templates/cal.html" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/templates/mail.html" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/templates/tel.html" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/templates/text.html" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/templates/url.html" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/templates/wifi.html" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Docker-Flask-QR.iml" beforeDir="false" afterPath="$PROJECT_DIR$/Docker-Flask-QR.iml" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Dockerfile" beforeDir="false" afterPath="$PROJECT_DIR$/Dockerfile" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Dockerfile" beforeDir="false" afterPath="$PROJECT_DIR$/Dockerfile" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Dockerfile-RasPi" beforeDir="false" afterPath="$PROJECT_DIR$/Dockerfile-RasPi" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Dockerfile-RasPi" beforeDir="false" afterPath="$PROJECT_DIR$/Dockerfile-RasPi" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Flask-QR.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/Flask-QR.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Flask-QR.zip" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/requirements.txt" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/app/Flask-QR.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/Flask-QR.py" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/templates/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/app/templates/index.html" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/app/templates/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/app/templates/index.html" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/templates/qr.html" beforeDir="false" afterPath="$PROJECT_DIR$/app/templates/qr.html" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/app/templates/qr.html" beforeDir="false" afterPath="$PROJECT_DIR$/app/templates/qr.html" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -46,49 +51,34 @@
|
|||||||
<option name="hideEmptyMiddlePackages" value="true" />
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
<option name="showLibraryContents" value="true" />
|
<option name="showLibraryContents" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent">{
|
<component name="PropertiesComponent"><![CDATA[{
|
||||||
"keyToString": {
|
"keyToString": {
|
||||||
"DefaultHtmlFileTemplate": "HTML File",
|
"DefaultHtmlFileTemplate": "HTML File",
|
||||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||||
"ignore.virus.scanning.warn.message": "true",
|
"ignore.virus.scanning.warn.message": "true",
|
||||||
"last_opened_file_path": "D:/mager/Documents/IntelliJ/Docker-Flask-QR/Dockerfile-RasPi",
|
"last_opened_file_path": "D:/mager/Documents/IntelliJ/Docker-Flask-QR/app/templates",
|
||||||
"project.structure.last.edited": "SDKs",
|
"project.structure.last.edited": "SDKs",
|
||||||
"project.structure.proportion": "0.15",
|
"project.structure.proportion": "0.15",
|
||||||
"project.structure.side.proportion": "0.2"
|
"project.structure.side.proportion": "0.2",
|
||||||
|
"settings.editor.selected.configurable": "preferences.lookFeel"
|
||||||
}
|
}
|
||||||
}</component>
|
}]]></component>
|
||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
<key name="CopyFile.RECENT_KEYS">
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
|
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR\app\templates" />
|
||||||
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR" />
|
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR" />
|
||||||
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR\templates" />
|
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR\templates" />
|
||||||
</key>
|
</key>
|
||||||
<key name="MoveFile.RECENT_KEYS">
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
|
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR\app\static" />
|
||||||
<recent name="$PROJECT_DIR$/app" />
|
<recent name="$PROJECT_DIR$/app" />
|
||||||
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR\templates" />
|
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR\templates" />
|
||||||
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR" />
|
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="Docker.Dockerfile-Raspi">
|
<component name="RunManager">
|
||||||
<configuration name="Dockerfile-Raspi" type="docker-deploy" factoryName="dockerfile" temporary="true" server-name="Docker-RasPi">
|
|
||||||
<deployment type="dockerfile">
|
|
||||||
<settings>
|
|
||||||
<option name="imageTag" value="flask-qrcode-gen:latest" />
|
|
||||||
<option name="containerName" value="flask-qrcode-gen" />
|
|
||||||
<option name="portBindings">
|
|
||||||
<list>
|
|
||||||
<DockerPortBindingImpl>
|
|
||||||
<option name="containerPort" value="80" />
|
|
||||||
<option name="hostPort" value="8002" />
|
|
||||||
</DockerPortBindingImpl>
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
<option name="sourceFilePath" value="Dockerfile-RasPi" />
|
|
||||||
</settings>
|
|
||||||
</deployment>
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="true" type="docker-deploy" factoryName="dockerfile" temporary="true">
|
<configuration default="true" type="docker-deploy" factoryName="dockerfile" temporary="true">
|
||||||
<deployment type="dockerfile">
|
<deployment type="dockerfile">
|
||||||
<settings />
|
<settings />
|
||||||
@@ -123,4 +113,8 @@
|
|||||||
</map>
|
</map>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="VcsManagerConfiguration">
|
||||||
|
<MESSAGE value="css,mail,tel,url,calendar fertig" />
|
||||||
|
<option name="LAST_COMMIT_MESSAGE" value="css,mail,tel,url,calendar fertig" />
|
||||||
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
FROM python:slim
|
FROM python:slim
|
||||||
|
|
||||||
LABEL authors="tebarius"
|
LABEL authors="tebarius"
|
||||||
LABEL version="1.0"
|
LABEL version="1.1"
|
||||||
LABEL description="Simple QR-Code-Generator-Server"
|
LABEL description="QR-Code-Generator-Server with Flask-App"
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ./app /app/
|
COPY ./app /app/
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
FROM python:slim
|
FROM python:slim
|
||||||
|
|
||||||
LABEL authors="tebarius"
|
LABEL authors="tebarius"
|
||||||
LABEL version="1.0"
|
LABEL version="1.1"
|
||||||
LABEL description="Simple QR-Code-Generator-Server"
|
LABEL description="QR-Code-Generator-Server with Flask-App"
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ./app /app/
|
COPY ./app /app/
|
||||||
|
|||||||
BIN
Flask-QR.zip
BIN
Flask-QR.zip
Binary file not shown.
115
app/Flask-QR.py
115
app/Flask-QR.py
@@ -13,11 +13,122 @@ def index():
|
|||||||
return render_template('index.html')
|
return render_template('index.html')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/text.html")
|
||||||
|
def text():
|
||||||
|
return render_template('text.html')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/tel.html")
|
||||||
|
def tel():
|
||||||
|
return render_template('tel.html')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/url.html")
|
||||||
|
def url():
|
||||||
|
return render_template('url.html')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/vcard.html")
|
||||||
|
def vcard():
|
||||||
|
return render_template('vcard.html')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/geo.html")
|
||||||
|
def geo():
|
||||||
|
return render_template('geo.html')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/mail.html")
|
||||||
|
def mail():
|
||||||
|
return render_template('mail.html')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/wifi.html")
|
||||||
|
def wifi():
|
||||||
|
return render_template('wifi.html')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/cal.html")
|
||||||
|
def cal():
|
||||||
|
return render_template('cal.html')
|
||||||
|
|
||||||
|
|
||||||
@app.route("/qr.html")
|
@app.route("/qr.html")
|
||||||
def makeqr():
|
def makeqr():
|
||||||
data = request.args.get('qr')
|
data = ""
|
||||||
|
if request.args.get('type') == "text":
|
||||||
|
data = request.args.get('text')
|
||||||
|
|
||||||
|
elif request.args.get('type') == "url":
|
||||||
|
data = request.args.get('url')
|
||||||
|
|
||||||
|
elif request.args.get('type') == "tel":
|
||||||
|
data = f"tel:{request.args.get('tel')}"
|
||||||
|
|
||||||
|
elif request.args.get('type') == "vcard":
|
||||||
|
pass
|
||||||
|
|
||||||
|
elif request.args.get('type') == "geo":
|
||||||
|
pass
|
||||||
|
|
||||||
|
elif request.args.get('type') == "wifi":
|
||||||
|
pass
|
||||||
|
|
||||||
|
elif request.args.get('type') == "cal":
|
||||||
|
# Format für Calendar (Zeilenumbrüche beachten!!):
|
||||||
|
# BEGIN:VEVENT
|
||||||
|
# SUMMARY:<titel>
|
||||||
|
# DESCRIPTION:<beschreibung>
|
||||||
|
# LOCATION:<Ort>
|
||||||
|
# DTSTART:20231114T090000
|
||||||
|
# DTEND:20231123T110000
|
||||||
|
# END:VEVENT
|
||||||
|
sdt = request.args.get('sdate').replace('-', '')
|
||||||
|
if request.args.get('edate') == "":
|
||||||
|
edt = sdt
|
||||||
|
else:
|
||||||
|
edt = request.args.get('edate').replace('-', '')
|
||||||
|
if request.args.get('stime') != "":
|
||||||
|
sdt += f"T{request.args.get('stime').replace(':', '')}00"
|
||||||
|
if request.args.get('etime') != "":
|
||||||
|
edt += f"T{request.args.get('etime').replace(':', '')}00"
|
||||||
|
data = (f"BEGIN:VEVENT\nSUMMARY:{request.args.get('title')}\n"
|
||||||
|
f"DESCRIPTION: {request.args.get('description')}\n"
|
||||||
|
f"LOCATION:{request.args.get('location')}\n"
|
||||||
|
f"DTSTART:{sdt}\nDTEND:{edt}\n"
|
||||||
|
f"END:VEVENT")
|
||||||
|
|
||||||
|
elif request.args.get('type') == "mail":
|
||||||
|
more = False
|
||||||
|
data = f"mailto:{request.args.get('mail')}"
|
||||||
|
if request.args.get('cc') != "":
|
||||||
|
data += f"?cc={request.args.get('cc')}"
|
||||||
|
more = True
|
||||||
|
if request.args.get('bcc') != "":
|
||||||
|
if more:
|
||||||
|
data += "&"
|
||||||
|
else:
|
||||||
|
data += "?"
|
||||||
|
more = True
|
||||||
|
data += f"bcc={request.args.get('bcc')}"
|
||||||
|
if request.args.get('subject') != "":
|
||||||
|
if more:
|
||||||
|
data += "&"
|
||||||
|
else:
|
||||||
|
data += "?"
|
||||||
|
more = True
|
||||||
|
data += f"subject={request.args.get('subject')}"
|
||||||
|
if request.args.get('body') != "":
|
||||||
|
if more:
|
||||||
|
data += "&"
|
||||||
|
else:
|
||||||
|
data += "?"
|
||||||
|
data += f"body={request.args.get('body')}"
|
||||||
|
|
||||||
|
else:
|
||||||
|
data = "Sorry kein Inhalt!!!"
|
||||||
return render_template('qr.html', data=data)
|
return render_template('qr.html', data=data)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app.run(host='0.0.0.0', port=80)
|
app.run(host='0.0.0.0', port=80, debug=True)
|
||||||
|
|||||||
28
app/static/style.css
Normal file
28
app/static/style.css
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
H1 {
|
||||||
|
text-align: center;
|
||||||
|
background-color: #eee;
|
||||||
|
border-radius: 60px;
|
||||||
|
filter: drop-shadow(10px 10px 20px blue);
|
||||||
|
font-size: 70px;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 50px;
|
||||||
|
}
|
||||||
|
div {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 50px;
|
||||||
|
}
|
||||||
|
form {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 50px;
|
||||||
|
}
|
||||||
|
input { font-size: 30px;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
border: solid gainsboro;
|
||||||
|
font-size: 30px;
|
||||||
|
margin: 15px;
|
||||||
|
border-radius: 50px;
|
||||||
|
filter: drop-shadow(10px 10px 10px blue);
|
||||||
|
}
|
||||||
14
app/templates/base.html
Normal file
14
app/templates/base.html
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<title>QR-Code-Generator</title>
|
||||||
|
<!--suppress HtmlUnknownTarget -->
|
||||||
|
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<H1>QRCode-Generator</H1>
|
||||||
|
{% block inhalt %}
|
||||||
|
{% endblock %}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
30
app/templates/cal.html
Normal file
30
app/templates/cal.html
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block inhalt %}
|
||||||
|
<form action="qr.html">
|
||||||
|
<label>Gib bitte Details für deinen Termin ein!</label><br />
|
||||||
|
<input type="hidden" name="type" value="cal">
|
||||||
|
|
||||||
|
<label for="title">Titel:</label>
|
||||||
|
<input type="text" name="title" id="title" size="30" maxlength="60" required><br />
|
||||||
|
<label for="sdate">Start-Datum</label>
|
||||||
|
<input type="date" name="sdate" id="sdate" required><br />
|
||||||
|
<br />
|
||||||
|
<label><i><u>optionale Angaben:</u></i></label><br />
|
||||||
|
<label for="stime">Start-Zeit</label>
|
||||||
|
<input type="time" name="stime" id="stime"><br />
|
||||||
|
<label for="edate">End-Datum</label>
|
||||||
|
<input type="date" name="edate" id="edate"><br />
|
||||||
|
<label for="etime">End-Zeit</label>
|
||||||
|
<input type="time" name="etime" id="etime"><br />
|
||||||
|
<label for="location">Ort:</label>
|
||||||
|
<input type="text" name="location" id="location" size="30" maxlength="120"><br />
|
||||||
|
<label for="description">weitere Notizen:</label>
|
||||||
|
<input type="text" name="description" id="description" size="30" maxlength="180"><br />
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<button type="reset">Eingaben zurücksetzen</button>
|
||||||
|
<button type="submit">Eingaben absenden</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -1,23 +1,14 @@
|
|||||||
<!DOCTYPE html>
|
{% extends "base.html" %}
|
||||||
<html lang="de">
|
|
||||||
<head>
|
|
||||||
<title>QR-Code-Generator</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<H1 style="text-align: center; background-color: #eee; border-radius: .5em;">QRCode-Generator</H1>
|
|
||||||
<p style="text-align: center;">
|
|
||||||
|
|
||||||
</p>
|
{% block inhalt %}
|
||||||
<form action="qr.html" style="text-align: center">
|
<p>
|
||||||
<label for="qr" style="font-size: 2em;">Was soll im QR-Code stehen?</label><br>
|
<b>Welche Art von QR-Code soll generiert werden?</b><br>
|
||||||
<input type="text" name="qr" id="qr" size="60" maxlength="120">
|
<div><button><a href="./text.html">einfacher Text </a></button></div>
|
||||||
<br><br>
|
<div><button><a href="./url.html">URL/Website-Link</a></button></div>
|
||||||
<button type="reset">Eingaben zurücksetzen</button>
|
<div><button><a href="./tel.html">Telefonnummer</a></button></div>
|
||||||
<button type="submit">Eingaben absenden</button>
|
<!--<div><button><a href="./vcard.html">Visitenkarte (vCard)</a></button></div>-->
|
||||||
</form>
|
<!--<div><button><a href="./geo.html">geographische Koordinaten</a></button></div>-->
|
||||||
|
<div><button><a href="./mail.html">EMail-Adresse</a></button></div>
|
||||||
|
<!--<div><button><a href="./wifi.html">WIFI</a></button></div>-->
|
||||||
|
<div><button><a href="./cal.html">Kalender-Termin</a></button></div>
|
||||||
|
{% endblock %}
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|||||||
24
app/templates/mail.html
Normal file
24
app/templates/mail.html
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block inhalt %}
|
||||||
|
<form action="qr.html">
|
||||||
|
<label>Wie lautet die EMail-Adresse?</label><br />
|
||||||
|
<input type="hidden" name="type" value="mail">
|
||||||
|
|
||||||
|
<label for="mail">EMail:</label>
|
||||||
|
<input type="email" name="mail" id="mail" size="30" maxlength="60" required><br />
|
||||||
|
<label><i>optionale Angaben:</i></label><br />
|
||||||
|
<label for="subject">Betreff:</label>
|
||||||
|
<input type="text" name="subject" id="subject" size="30" maxlength="120"><br />
|
||||||
|
<label for="cc">CC:</label>
|
||||||
|
<input type="email" name="cc" id="cc" size="30" maxlength="60"><br />
|
||||||
|
<label for="bcc">BCC:</label>
|
||||||
|
<input type="email" name="bcc" id="bcc" size="30" maxlength="60"><br />
|
||||||
|
<label for="body">Body / Text:</label>
|
||||||
|
<input type="text" name="body" id="body" size="30" maxlength="180"><br />
|
||||||
|
<br />
|
||||||
|
<button type="reset">Eingaben zurücksetzen</button>
|
||||||
|
<button type="submit">Eingaben absenden</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -1,20 +1,15 @@
|
|||||||
<!DOCTYPE html>
|
{% extends "base.html" %}
|
||||||
<html lang="de">
|
|
||||||
<head>
|
{% block inhalt %}
|
||||||
<title>QR-Code-Generator</title>
|
<p>
|
||||||
</head>
|
<b>folgendes wurde im QR-Code codiert:</b><br>
|
||||||
<body>
|
|
||||||
<H1 style="text-align: center; background-color: #eee; border-radius: .5em;">QRCode-Generator</H1>
|
|
||||||
<p style="text-align: center; font-size: 2em;">
|
|
||||||
<b>folgender Text wurde im QR-Code codiert:</b><br>
|
|
||||||
{{ data }} <br>
|
{{ data }} <br>
|
||||||
<br>
|
<br>
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<img src="{{ data|qrcode }}" alt="QR-Code für {{ data }}">
|
<img src="{{ data|qrcode(fit=True, box_size=15, border=2, ) }}" alt="QR-Code für {{ data }}">
|
||||||
</p>
|
</p>
|
||||||
<p style="text-align: center; font-size: 1.5em;">
|
<p>
|
||||||
<a href="./">Noch einmal bitte!</a>
|
<a href="./">Noch einmal bitte!</a>
|
||||||
</p>
|
</p>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|||||||
12
app/templates/tel.html
Normal file
12
app/templates/tel.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block inhalt %}
|
||||||
|
<form action="qr.html">
|
||||||
|
<label for="tel">Bitte Telefonnummer eingeben:</label><br>
|
||||||
|
<input type="hidden" name="type" value="tel" required>
|
||||||
|
<input type="tel" name="tel" id="tel" size="30" maxlength="30">
|
||||||
|
<br><br>
|
||||||
|
<button type="reset">Eingaben zurücksetzen</button>
|
||||||
|
<button type="submit">Eingaben absenden</button>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
||||||
12
app/templates/text.html
Normal file
12
app/templates/text.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block inhalt %}
|
||||||
|
<form action="qr.html">
|
||||||
|
<label for="text">Was soll im QR-Code stehen?</label><br>
|
||||||
|
<input type="hidden" name="type" value="text">
|
||||||
|
<input type="text" name="text" id="text" size="30" maxlength="120" required>
|
||||||
|
<br><br>
|
||||||
|
<button type="reset">Eingaben zurücksetzen</button>
|
||||||
|
<button type="submit">Eingaben absenden</button>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
||||||
15
app/templates/url.html
Normal file
15
app/templates/url.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block inhalt %}
|
||||||
|
<form action="qr.html">
|
||||||
|
<label>Wie lautet die URL / Webadresse?<br>(inkl. http...)</label><br />
|
||||||
|
<input type="hidden" name="type" value="url">
|
||||||
|
|
||||||
|
<label for="url">URL:</label>
|
||||||
|
<input type="url" name="url" id="url" size="30" maxlength="120" required><br />
|
||||||
|
<br />
|
||||||
|
<button type="reset">Eingaben zurücksetzen</button>
|
||||||
|
<button type="submit">Eingaben absenden</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
23
app/templates/wifi.html
Normal file
23
app/templates/wifi.html
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block inhalt %}
|
||||||
|
<form action="qr.html">
|
||||||
|
<label>Gib bitte Details zum WIFI ein!</label><br />
|
||||||
|
<input type="hidden" name="type" value="wifi">
|
||||||
|
|
||||||
|
<label for="ssid">SSID:</label>
|
||||||
|
<input type="text" name="ssid" id="ssid" size="30" maxlength="60" required><br />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<button type="reset">Eingaben zurücksetzen</button>
|
||||||
|
<button type="submit">Eingaben absenden</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user