[PYTHON] Je veux que vous présentiez le matériel pédagogique de Flask immédiatement jusqu'à présent ~ Implémentons Yuma avec Flask ~

introduction

Yuma n'est pas le principal.

Un jour

Je voulais créer une application Web et j'ai décidé d'étudier Flask. J'ai bien cherché sur Google et suis arrivé sur un certain site. Euh, quoi?

Exemple de code


from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

Faites-le à l'invite de commande Windows

cmd


set FLASK_APP = hello.py
flask run

Et exécutez. Je pense que ce n'est pas convivial de lancer un tel sort sans une clause de non-responsabilité telle que "Ici, l'exemple de code est enregistré sous" hello.py "", mais de toute façon, ceci flask1.png Le résultat peut être obtenu. Je veux dire, ce n'est que la sortie standard sur le navigateur. Avec ceci, "Je suis content que le contenu ait été facile à comprendre!" Yukari Oishi, êtes-vous satisfait de ce contenu? </ s>

Ceux qui veulent apprendre Flask sont ceux qui ont une certaine compréhension de Python et du html et qui veulent les connecter. Je ne peux pas être satisfait d'un tel échantillon. Après cela, j'ai visité plusieurs sites et j'ai trouvé de nombreux exemples de programmes qui rendaient simplement html et «Hello {{name}}». C'est une application Web! Je veux un exemple d'application Web assez facile à craquer, mais vraiment programmatique! Ensuite, vous pouvez voir à quoi ressemble Flask!

Illusion

Par exemple, avant d'expliquer Flask, j'aimerais voir un exemple comme celui-ci.

app.py


from flask import Flask, render_template
import random

app = Flask(__name__)

@app.route("/")
def hello_world():
    a = random.randint(1, 9)
    b = random.randint(1, 9)
    c = a * b
    return render_template("index.html",
                           val1 = a,
                           val2 = b,
                           val3 = c)

if __name__ == "__main__":
    app.run(debug=True)

Quand,

templates/index.html Mettez html dans le dossier des modèles


<html>
<body>
Je l'ai calculé en Python au lieu de Javascript<br>
<b>{{val1}}</b>*<b>{{val2}}</b> = <b>{{val3}}</b>Qu'est-ce que vous avez dit.<br>
</body>
</html>

Quand, flask2.png Le résultat de sortie. Si vous montrez cela depuis le début, vous pourrez peut-être décider par vous-même où vous pouvez comprendre à ce stade, où vous voyez la description pour la première fois et ce que vous devez apprendre. De cette façon, même si vous apprenez à partir de la sortie standard vers un navigateur qui n'est même pas html, vous obtiendrez une meilleure compréhension, mais il n'y a pas beaucoup de sites d'apprentissage de ce type.

Yuma

Je n'étais pas satisfait de l'exemple ci-dessus et j'ai dit: "C'est une application Web! C'est une application Web! Entrez-la dans le navigateur, calculez-la en Python et affichez-la dans le navigateur. Sans elle, ce n'est pas une application Web. Certains peuvent être extravagants, exigeant un échantillon plus pratique.

Je vais présenter un tel échantillon à une telle personne. Oui, c'est Yuma. Ma connaissance du html s'est arrêtée il y a 25 ans, alors je pourrais être grondé pour avoir dit "N'utilisez pas \
comme ça!". Aussi, bien que cette fois omis, il est préférable d'écrire correctement <meta charset =" utf-8 "> etc.

app.py


from flask import Flask, render_template, request, redirect
import random

app = Flask(__name__)

@app.route("/")
def input():
    return render_template("input.html")

@app.route("/answer", methods=["post"])
def answer():
    name = request.form["inputname"]
    try:
        new_name = random.choice(name)
        return render_template("answer_named.html",
                               name = name,
                               new_name = new_name)
    except Exception as e:
        return render_template("answer_noname.html",
                               error = e)

if __name__ == "__main__":
    app.run(debug=True)

templates/input.html


<html>
<head>
<link rel="stylesheet" type="text/css" href="static/style.css">
</head>
<body>
<img src = "static/yuba.png "><br>
C'est un contrat. Écrivez votre nom ici.<br>
<br>
<form action="/answer" method="post">
<textarea name="inputname"></textarea><br>
<button type="submit">POST</button>
</form>
</body>
</html>

templates/answer_named.html


<html>
<head>
<link rel="stylesheet" type="text/css" href="static/style.css">
</head>
<body>
<img src = "static/yuba.png "><br>
Hung.<dev class="before">{{name}}</dev>Je veux dire. C'est un nom luxueux.<br>
A partir de maintenant, ton nom est<dev class="after">{{new_name}}</dev>Il est. Attention,<dev class="after">{{new_name}}</dev>C'est vrai.<br>
Je répondrai quand je comprendrai<dev class="after">{{new_name}}</dev>!!<br>
<br>
<a href="/">Retourner en haut</a>
</body>
</html>

templates/answer_noname.html


<html>
<head>
<link rel="stylesheet" type="text/css" href="static/style.css">
</head>
<body>
<img src = "static/haku.png "><br>
Merci Chihiro. mon nom est<div class="haku"> {{error}}</div><br>
Je me souviens quand tu as mis un nul en moi et que tu es tombé.<br>
Vous avez essayé de détecter l'erreur.<br>
<br>
<a href="/">Retourner en haut</a>
</body>
</html>

static/style.css Placer le CSS et les images dans un dossier statique


.before {
    color: #FF0000;
    font-size: 120%;
    font-style: italic;
}

.after {
    color: #0000FF;
    font-size: 150%;
}


.haku {
    color: #FF00FF;
    font-size: 120%;
    font-weight: bold;
}

flask3.png

flask4.png

flask5.png

En regardant ce genre de chose, je sens que je peux faire Saiseriya 1000 Yen Gacha. Je pense qu'il est important de dire: «Je sens que je peux le faire moi-même». "Apprenons Flask à partir de zéro, la sortie standard est return" Hello World! ". Repeat After Me "ne vous motive pas.

À la fin

Jusqu'à présent, il s'appelait Dessin japonais Images composites avec OpenCV. Depuis que j'ai fait cela, j'avais l'intention d'écrire un article ici aussi, disant: "Si vous utilisez OpenCV dans Flask, vous pourrez créer quelque chose qui était autrefois populaire **, tout comme un générateur de route externe **!" Je suis allée à la source chaude parce qu'elle était populaire. Actuellement étudiant heroku.

référence

Essayez d'implémenter Yuma en Java Éviter les erreurs émises par Yuma en Java J'ai utilisé try ~ except de Python pour la première fois. Essayez d'implémenter Yuma en Python

Recommended Posts

Je veux que vous présentiez le matériel pédagogique de Flask immédiatement jusqu'à présent ~ Implémentons Yuma avec Flask ~
Je veux faire la transition avec un bouton sur le ballon
Lorsque vous souhaitez envoyer un objet avec des requêtes à l'aide de flask
Je veux faire ○○ avec les Pandas
Je veux déboguer avec Python