Jusqu'à présent, j'ai fait pas mal de génération de phrases par analyse morphologique et chaîne de Markov, Je l'ai fait avec une bouteille.
views.html
<form method="GET" action="/show">
<p class="in">De quoi parlez-vous aujourd'hui?</p>
<p><input type="text" name="send_word"></input></p>
<p><input type="submit" value="Envoyer"></p>
</form>
Ajoutez la soumission de formulaire au fichier HTML à appeler comme écran principal.
style.css
input[type=submit]{
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-o-border-radius: 5px;
-ms-border-radius: 5px;
border:#a9a9a9 1px solid;
-moz-box-shadow: inset 0 0 5px rgba(0,0,0,0.2),0 0 2px rgba(0,0,0,0.3);
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2),0 0 2px rgba(0,0,0,0.3);
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2),0 0 2px rgba(0,0,0,0.3);
width:100%;
height:40px;
padding:0 3px;
cursor:pointer;
color:#333;
font-weight:bold;
background:#f5f5f5;
text-shadow:1px 1px 0px #fff;
}
input[type=text]{
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-o-border-radius: 5px;
-ms-border-radius: 5px;
border:#a9a9a9 1px solid;
-moz-box-shadow: inset 0 0 5px rgba(0,0,0,0.2),0 0 2px rgba(0,0,0,0.3);
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2),0 0 2px rgba(0,0,0,0.3);
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2),0 0 2px rgba(0,0,0,0.3);
width:100%;
height:30px;
padding:0 3px;
}
input[type=text]:focus {
border:solid 1px #20b2aa;
}
input[type=text], select {
outline: none;
}
Lors de la personnalisation des boutons et des formulaires de texte avec CSS.
show.html
<h4 class="center">mot-clé{{send_word}}Markov!</h4>
<p>{{twits}}</p>
Le HTML pour afficher le résultat est comme ceci, et les variables définies dans la bouteille sont insérées.
route.py
@route("/show", method="GET")
def send_word():
send_word = request.query.send_word
send_word.encode("utf-8")
if send_word:
os.remove("static/tweet.txt")
Recevez par GET du formulaire avec bouteille. Comme d'habitude, j'enregistre une fois la recherche du mot-clé dans le texte, mais je ne veux pas l'augmenter, alors supprimez-la chaque fois que je l'exécute.
@error(500)
def error500(error):
return template("500")
Si le mot de recherche est une niche ou si la limite d'API apparaît, ce sera une erreur de 500, alors évitez le traitement avec une bouteille. J'aimerais pouvoir séparer le traitement par code d'état avec try except.
Le reste est le même que celui que j'ai écrit auparavant. Le produit fini a été lancé à Heroku par le déploiement de Dropbox sans utiliser git.
http://markov-twit.herokuapp.com/
J'ai fait quelque chose comme ça.
Recommended Posts