Erstellen Sie Heroku, Flask, Python, Nyanko Bulletin Board mit "CSV-Datei"

(1) Erstellen Sie ein Bulletin Board mit csv


Verzeichnisstruktur

test
├app.py
├articles.csv
├Procfile
├requirements.txt
└templates
  ├index.html
  ├layout.html
  └index_result.html

① Erstellung von Inhalten

Stellen Sie die virtuelle Umgebung direkt unter dem Verzeichnistest ein und starten Sie sie.

python3 -m venv .
source bin/activate

Installieren Sie das erforderliche Framework und den Webserver.

pip install flask
pip install gunicorn

Fügen Sie zunächst die Bulletin-Board-Daten in articles.csv ein.

.csv:articles.csv


Marmor,Schläfrig
Weiß,Ich bin hungrig
Schwarz,Irgendwie warm
Marmor,Poe Poe Poe
Pontan,Kein Klopapier
Naochin,Kette

Erstellen Sie app.py.

.py:app.py


# -*- coding: utf-8 -*-
from flask import Flask,request,render_template
app = Flask(__name__)

@app.route('/')
def bbs():
    lines = []
    #mit Öffnen, um die CSV-Datei zu lesen
    with open('articles.csv',encoding='utf-8') as f:
        lines = f.readlines() #readlines gibt den Inhalt von csv im Listenformat zurück
    #index.Kehren Sie zu HTML zurück
    return render_template('index.html',lines=lines)

#Post-Methode erhalten
@app.route('/result',methods=['POST'])
def result():
    #Holen Sie sich den Wert des Artikels und des Namens auf Anfrage
    article = request.form['article']
    name = request.form['name']
    #Schreiben Sie im Überschreibmodus in eine CSV-Datei
    with open('articles.csv','a',encoding='utf-8') as f:
        f.write(name + ',' + article + '\n')
    #index_result.Kehren Sie zu HTML zurück
    return render_template('index_result.html',article=article,name=name)


if __name__ == '__main__':
    app.run(debug=False)

Erstellen Sie index.html.

.html:index.html


{% extends 'layout.html' %}
{% block content %}
    <h1>Nyanko Bulletin Board</h1>
    <form action='/result' method='post'>
        <label for='name'>Nyankos Name</label>
        <input type='text' name='name'>
        <p></p>
        <label for='article'>Post</label>
        <input type='text' name='article'>

        <button type='subimit'>Schreiben</button>
    </form>

    <p></p>
    <p></p>

    <table border=1>
        <tr><th>Nyankos Name</th><th>Geposteter Inhalt</th></tr>
        {% for line in lines: %}
        <!--Legen Sie eine Variable namens column fest (set ist für den Variablensatz erforderlich).-->
        <!--Split verwenden,Klassifizieren nach. split gibt eine Liste zurück-->
            {% set column = line.rstrip().split(',') %}
            <tr><td>{{column[0]}}</td><td>{{column[1]}}</td></tr>
        {% endfor %}
    </table>

{% endblock %}

Erstellen Sie eine HTML-Vorlage.

.html:layout.html


<!DOCTYPE html>
<html lang='ja'>
  <head>
      <meta charset='utf-8'>
      <title>Nyanko BBS</title>
      <style>body{padding:10px;}</style>
  </head>
  <body>
    {% block content %}
    {% endblock %}
  </body>
</html>

Der Inhalt des in index.html eingegebenen Formulars wird durch index_result.html dargestellt.

.html:layout.html


{% extends 'layout.html' %}
{% block content %}
    <h1>Nya-Ich schrieb an die Pinnwand</h1>
    <p>{{name}}{{article}}</p>

    <!--informieren/Zurück zu-->
    <form action='/' method='get'>
      <button type='submit'>Rückkehr</button>
    </form>

{% endblock %}

② In Heroku bereitstellen

Die Details der Bereitstellung in Heroku sind wie im folgenden Artikel beschrieben, daher werde ich die ausführliche Erklärung weglassen. Hochladen mit Heroku, Flask, Python, Git (Teil 2) Ich habe Procfile und require.txt erstellt, mit git betrieben und erfolgreich bereitgestellt.

スクリーンショット 2020-03-10 23.16.27.png Wenn Sie "Iwashi" oder "Ich liebe Fisch" posten, スクリーンショット 2020-03-10 23.16.41.png Erfolgreiches Schreiben! Wenn ich zurück gehe, スクリーンショット 2020-03-10 23.16.54.png Es ist ordnungsgemäß am Schwarzen Brett angebracht.

Das nächste Mal möchte ich mit SQL ein Bulletin Board erstellen

Daten verschwinden nach einer Weile (30 Minuten) beim Schreiben von CSV mit Heroku, daher möchte ich ein Bulletin Board mit einer Datenbank wie SQL erstellen.

Recommended Posts

Erstellen Sie Heroku, Flask, Python, Nyanko Bulletin Board mit "CSV-Datei"
Erstellen Sie ein Bulletin Board mit Heroku, Flask, SQL Alchemy
Behandeln Sie Excel-CSV-Dateien mit Python
Ich habe mit Python, Flask und Heroku ein Nyanko-Tweet-Formular erstellt
Einfache Web-App mit Python + Flask + Heroku
[Python] Erstellen Sie schnell eine API mit Flask
[Python] CSV-Dateien lesen
Programmieren mit Python Flask
Erstellen Sie mit Python + Flask einen animierten lokalen GIF-Server
Hochladen mit Heroku, Flask, Python, Git (Teil 1)
Hochladen mit Heroku, Flask, Python, Git (Teil 2)
Entfernen Sie Überschriften aus CSV-Dateien mit mehreren Formaten mit Python
Lesen Sie CSV mit Python-Pandas
Berühre Flask + laufe mit Heroku
Erstellen Sie ein 3D-GIF mit Python3
Sortieren von Bilddateien mit Python (2)
Sortieren Sie große Dateien mit Python
Sortieren von Bilddateien mit Python (3)
Bilddateien mit Python sortieren
Integrieren Sie PDF-Dateien in Python
TXT-Dateien mit Python lesen
Schreiben Sie mit Python in csv
Webanwendung mit Python + Flask ② ③
Erstellen Sie ein Verzeichnis mit Python
Laden Sie die CSV-Datei mit Python herunter
Webanwendung mit Python + Flask ④
So importieren Sie CSV- und TSV-Dateien mit Python in SQLite
Verschieben von CSV-Dateien mit Python Teil 1
[Python] Laden von CSV-Dateien mit Pandas
Erstelle einen LINE-Bot mit Python + Heroku
Mit Flask erstellte SNS Python-Grundlagen
Erstellen Sie Awaitable mit der Python / C-API
Machen Sie Apache Log CSV mit Python
Erstellen Sie mit Flask einen CSV-Reader
Extrahieren Sie Zip-Dateien rekursiv mit Python
[Python] Mit Python in eine CSV-Datei schreiben
Behandeln Sie CSV-Dateien mit Django (Django-Import-Export)
Ausgabe in eine CSV-Datei mit Python
Führen Sie die App mit Flask + Heroku aus
[Python] POST-WAV-Dateien mit Anforderungen [POST]
Erstellen Sie eine virtuelle Umgebung mit Python!
Mit OpenSSL mit Python 3 verschlüsselte Dateien entschlüsseln
Verwenden Sie als nächstes Python (Flask) für Heroku!
Lesen Sie Dateien parallel zu Python
Lesen und Schreiben von CSV mit Python
Post Bulletin Board Erstellung mit Flasche
Anwendungsentwicklung mit Docker + Python + Flask
Erstellen Sie eine "Congratulations 2.0" -App, die Glückwunschstimmen mit automatischer Telefonantwort mit Twilio API x Python (Flask) x Heroku sammelt
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Erstellen Sie mit Class einen Python-Funktionsdekorator
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
Ich habe Linebot mit Flasche (Anaconda) + Heroku ausprobiert
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Erstellen Sie mit Python + PIL ein Dummy-Image.