test
├app.py
├articles.csv
├Procfile
├requirements.txt
└templates
├index.html
├layout.html
└index_result.html
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 %}
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.
Si vous postez "Iwashi" ou "J'aime le poisson", Écriture réussie! Quand je rentre, Il est correctement affiché sur le babillard.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