[PYTHON] (Pour moi-même) Flask_4 (Menu déroulant, Afficher les données txt (en utilisant le tableau))

article

  1. Création d'un menu déroulant
  2. Lire les données txt
  3. Organiser txt

1. Créer un menu déroulant

python


from flask import Flask, request, render_template
app = Flask(__name__)

players = ["Courageux", "guerrier", "sorcier", "Ninja"]

@app.route("/")
def show():
    message = "Un nouveau monstre est apparu!"
    return render_template("battle.html", message = message, players = players)

--Cette fois, créez un menu avec la liste créée du côté py en tant qu'élément.

html


<form action="/result" method="post">
    <select name="name">
        {% for player in players %}
            <option value="{{ player }}">{{ player }}</option>
        {% endfor %}
    </select>
    <p></p>
    <button type="submit">Bats toi</button>
</form>

2. Lire les données txt

python


from flask import Flask, request, render_template
import codecs
app = Flask(__name__)

@app.route("/")
def bbs():
    file = codecs.open("articles.txt", "r", "utf-8")
    lines = file.readlines()
    file.close()
    return render_template("bbs.html", lines = lines)

@app.route("/result", methods=["POST"])
def result():
    article = request.form["article"]
    name = request.form["name"]
    return render_template("bbs.html", article = article, name = name)

--Declare ʻimport codecs <br> Il semble que vous pouvez lire des données avec le code de caractère spécifié en utilisant des codecs. --file = codecs.open ("articles.txt", "r", "utf-8") Le txt spécifié par est placé dans la variable de fichier par utf-8 en mode r. --lines = file.readlines () lit toutes les données dans une liste ligne par ligne.
Au fait,.readline ()ne lit qu'une seule ligne, et .read () n'est pas pertinent pour la liste. Tout lire

html


{% for line in lines: %}
    <p>{{ line.rstrip() }} </p>
{% endfor %}

--- Affichez simplement les données affectées à la ligne une par une avec l'instruction for --- .rstrip () n'efface qu'un seul code de saut de ligne à la fin de la ligne

3. Organisez les données txt lues

C'est une histoire de type html qui arrange simplement l'apparence, vous n'avez donc pas à toucher py.

html


<table>
    <tr><th>Publier</th><th>Nom</th></tr>
        {% for line in lines: %}
            {% set column = line.rstrip().split(",") %}
            <tr>
                {% for item in column: %}
                    <td>{{ item }}</td>
                {% endfor %}
            </tr>
        {% endfor %}
</table>

--Remplacez celui ci-dessus avec ceci

txt


Hello World,peko
Hello Ruby,oz
Hello Sinatra,toramaru
Tout le monde dans le monde Konnichiha,Kirishima
Miaou,chat

S'il s'agit de données txt, dans le premier essai de for

--Line a les données Hello World, peko (code de saut de ligne) --La colonne contient les données Hello World, peko (nettoyage des données) --Seules les données Hello World sont incluses dans l'élément (car elles ont été séparées, elles ont été retirées par elles-mêmes)

Est inclus. N'oubliez pas de déclarer que vous pouvez le mettre horizontalement avec la balise tr.

4. À la fin

――Je sais comment obtenir un serveur sur AWS, mais qu'en est-il de l'obtention d'un domaine? ――Est-il possible d'utiliser des domaines gratuits obtenus ailleurs sur AWS? Je pense que tu dis quelque chose d'étrange et que tu as tort

Recommended Posts

(Pour moi-même) Flask_4 (Menu déroulant, Afficher les données txt (en utilisant le tableau))
(Pour moi) Flask_5 (Ajouter au fichier txt)
(Pour moi-même) Flask_7 (Ouvrir la base de données depuis Flask)
[Python] Quatre-vingt-dix-neuf tables utilisant des instructions for
Impressions d'utilisation de Flask pendant un mois
(Pour moi) Mettez Flask dans VS Code
(Pour moi) Flask_3 (formulaire, POST et GET)