Créer un babillard Heroku, Flask, Python, Nyanko avec "fichier csv"

(1) Créer un babillard en utilisant csv


Structure du répertoire

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

① Création de contenu

Définissez l'environnement virtuel directement sous le test de répertoire et démarrez-le.

python3 -m venv .
source bin/activate

Installez le framework et le serveur Web requis.

pip install flask
pip install gunicorn

Tout d'abord, placez les données du tableau d'affichage dans articles.csv.

.csv:articles.csv


Marbre,Somnolent
blanc,j'ai faim
Noir,Quelque peu chaud
Marbre,Poe Poe Poe
Pontan,Pas de papier toilette
Naochin,Chaîne

Créez app.py.

.py:app.py


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

@app.route('/')
def bbs():
    lines = []
    #avec open pour lire le fichier csv
    with open('articles.csv',encoding='utf-8') as f:
        lines = f.readlines() #readlines renvoie le contenu de csv au format liste
    #index.Revenir au html
    return render_template('index.html',lines=lines)

#Recevoir la méthode de publication
@app.route('/result',methods=['POST'])
def result():
    #Obtenir la valeur de l'article et du nom dans la demande
    article = request.form['article']
    name = request.form['name']
    #Ecrire dans un fichier csv en mode écrasement
    with open('articles.csv','a',encoding='utf-8') as f:
        f.write(name + ',' + article + '\n')
    #index_result.Revenir au html
    return render_template('index_result.html',article=article,name=name)


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

Créez index.html.

.html:index.html


{% extends 'layout.html' %}
{% block content %}
    <h1>Tableau d'affichage Nyanko</h1>
    <form action='/result' method='post'>
        <label for='name'>Le nom de Nyanko</label>
        <input type='text' name='name'>
        <p></p>
        <label for='article'>Publier</label>
        <input type='text' name='article'>

        <button type='subimit'>Écrire</button>
    </form>

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

    <table border=1>
        <tr><th>Le nom de Nyanko</th><th>Contenu publié</th></tr>
        {% for line in lines: %}
        <!--Définissez une variable appelée colonne (un ensemble est requis pour l'ensemble de variables)-->
        <!--Utilisation de split,Classer par. split renvoie une liste-->
            {% set column = line.rstrip().split(',') %}
            <tr><td>{{column[0]}}</td><td>{{column[1]}}</td></tr>
        {% endfor %}
    </table>

{% endblock %}

Créez un modèle html.

.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>

Le contenu du formulaire saisi dans index.html est représenté par index_result.html.

.html:layout.html


{% extends 'layout.html' %}
{% block content %}
    <h1>Nya-J'ai écrit sur le babillard</h1>
    <p>{{name}}{{article}}</p>

    <!--informer/Retour à-->
    <form action='/' method='get'>
      <button type='submit'>Revenir</button>
    </form>

{% endblock %}

② Déployer sur Heroku

Les détails du déploiement sur Heroku sont tels que décrits dans l'article suivant, je vais donc omettre l'explication détaillée. Comment télécharger avec Heroku, Flask, Python, Git (Partie 2) J'ai créé Procfile et requirements.txt, je l'ai exploité avec git et l'ai déployé avec succès.

スクリーンショット 2020-03-10 23.16.27.png Si vous postez "Iwashi" ou "J'aime le poisson", スクリーンショット 2020-03-10 23.16.41.png Écriture réussie! Quand je rentre, スクリーンショット 2020-03-10 23.16.54.png Il est correctement affiché sur le babillard.

La prochaine fois que je veux créer un babillard en utilisant SQL

Les données disparaissent après un certain temps (30 minutes) lors de l'écriture de csv avec Heroku, je voudrais donc créer un tableau d'affichage en utilisant une base de données telle que sql.

Recommended Posts

Créer un babillard Heroku, Flask, Python, Nyanko avec "fichier csv"
Créer un babillard avec Heroku, Flask, SQL Alchemy
Gérer les fichiers Excel CSV avec Python
J'ai créé un formulaire de tweet Nyanko avec Python, Flask et Heroku
Application Web facile avec Python + Flask + Heroku
[Python] Créez rapidement une API avec Flask
[Python] Lecture de fichiers CSV
Programmation avec Python Flask
Créer un serveur local GIF animé avec Python + Flask
Comment télécharger avec Heroku, Flask, Python, Git (Partie 1)
Comment télécharger avec Heroku, Flask, Python, Git (Partie 2)
Supprimer les en-têtes de fichiers CSV à plusieurs formats avec python
Lire csv avec des pandas python
Touch Flask + courir avec Heroku
Créer un gif 3D avec python3
Tri des fichiers image avec Python (2)
Trier de gros fichiers avec python
Tri des fichiers image avec Python (3)
Tri des fichiers image avec Python
Intégrez des fichiers PDF avec Python
Lire des fichiers .txt avec Python
Écrire en csv avec Python
Application Web avec Python + Flask ② ③
Créer un répertoire avec python
Télécharger le fichier csv avec python
Application Web avec Python + Flask ④
Comment importer des fichiers CSV et TSV dans SQLite avec Python
Translocation de fichiers CSV avec Python Partie 1
[Python] Chargement de fichiers csv à l'aide de pandas
Créez un bot LINE avec Python + heroku
Bases de SNS Python faites avec Flask
Créer Awaitable avec l'API Python / C
Créer Apache Log CSV avec Python
Créer un lecteur CSV avec Flask
Extraire récursivement des fichiers zip avec python
[Python] Ecrire dans un fichier csv avec Python
Gérer les fichiers csv avec Django (django-import-export)
Sortie vers un fichier csv avec Python
Exécutez l'application avec Flask + Heroku
[Python] Fichiers wav POST avec requêtes [POST]
Créez un environnement virtuel avec Python!
Décrypter les fichiers cryptés avec OpenSSL avec Python 3
Ensuite, utilisez Python (Flask) pour Heroku!
Lire des fichiers en parallèle avec Python
Lire et écrire du CSV avec Python
Création d'un babillard avec flask
Développement d'applications avec Docker + Python + Flask
Créez une application «Félicitations 2.0» qui recueille des voix de félicitations grâce à la réponse téléphonique automatique avec Twilio API x Python (Flask) x Heroku
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Créer un décorateur de fonction Python avec Class
Lire un fichier audio à partir de Python avec interruption
Créez wordcloud à partir de votre tweet avec python3
J'ai essayé linebot avec flacon (anaconda) + heroku
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Créez une image factice avec Python + PIL.