[PYTHON] Bonjour le monde avec Flask + Hamlish

Aperçu

Flask est un framework Web simple pour Python. Je pense que Sinatra est proche de cela dans Ruby.

Flask utilise un moteur de template appelé jinja2, qui donne l'impression d'écrire du HTML en texte brut. Je suis habitué à HAML, j'ai donc essayé d'utiliser hamlish-jinja, qui vous permet d'écrire des modèles de vue de type HAML dans Flask.

Préparation

$ pip install Flask
$ pip install Hamlish-Jinja

organisation des fichiers

.
├── app.py
└── templates
    └── index.haml

app.py


from flask import Flask, render_template
from werkzeug import ImmutableDict

class FlaskWithHamlish(Flask):
    jinja_options = ImmutableDict(
        extensions=['jinja2.ext.autoescape', 'jinja2.ext.with_', 'hamlish_jinja.HamlishExtension']
    )
app = FlaskWithHamlish(__name__)
app.jinja_env.hamlish_mode = 'indented'
app.jinja_env.hamlish_enable_div_shortcut = True

@app.route('/')
def index():
    return render_template('index.haml')

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

index.haml


%html
  %head
    %meta charset="utf-8"
    %title
      Hello World!
  %body
    %h1
      Hello World!

Courir

$ python app.py

Accédez maintenant à localhost: 5000 sur votre navigateur Web. Vous devriez voir "Hello World!". Flask semble placer les templates dans un répertoire nommé par défaut templates.

Différence par rapport au HAML original

Comme son nom l'indique, Hamlish est "semblable à HAML", pas HAML lui-même. Cet article a été utile pour connaître la différence.

Même dans l'exemple ci-dessus, dans HAML, ce devrait être % meta {charset:" utf-8 "}, mais dans Hamlish, c'est % meta charset =" utf-8 ".

Spécification de l'option

app.jinja_env.hamlish_mode = 'indented'
app.jinja_env.hamlish_enable_div_shortcut = True

Spécification des options pour Hamlish. S'il vous plaît voir famille de tête hamlish-jinja pour voir quels types d'options sont disponibles.

Impressions

Je pensais que Flask était très compact et bon. De plus, Hamlish semble rendre votre site Web amusant et net.

Les références

Essayez d'utiliser le framework d'application Web Flask J'ai beaucoup appris. Lisez simplement ceci et vous serez prêt à commencer à créer un petit site Web.

Postscript

Je l'oublie toujours. Pour garantir que les modifications du fichier de vue prennent effet sans redémarrer le serveur

$ FLASK_DEBUG=1 python app.py

Et.

Recommended Posts

Bonjour le monde avec Flask + Hamlish
Bonjour le monde sur flacon
bonjour le monde avec ctypes
Bonjour le monde avec Docker
Dessinez bonjour le monde avec mod_wsgi
Jusqu'à bonjour le monde avec zappa
Python commençant par Hello world!
Bonjour le monde
Bonjour tout le monde! Avec la communication CAN virtuelle
[Note] Sortie Hello world avec python
Hello World avec Flask [Mémo approprié]
Hello World! Par QPython avec Braincrash
Jusqu'à Hello World avec Flask + uWSGI + Nginx @ Sakura's VPS (CentOS 6.6)
Hello World et détection de visage avec opencv-python 4.2
Bonjour le monde avec Raspberry Pi + Minecraft Pi Edition
Pymacs helloworld
Tutoriel Flask (de l'installation à Hello World)
cython helloworld
Hello World! Par QPython avec Brainfu * k
Re: La vie Heroku commence avec Flask from zero - Environnement et Hello world -
Hello World et détection de visage avec OpenCV 4.3 + Python
Bonjour tout le monde avec toutes les fonctionnalités du langage Go
Dites bonjour au monde avec Python avec IntelliJ
Hello World avec nginx + uwsgi + python sur EC2
Flask Hello World ne peut pas être affiché dans VPS
Créez une application Hello World avec un seul fichier avec django
Premier python ① Construction de l'environnement avec pythonbrew & Hello World !!
Créer un serveur "Hello World" (HTTP) dans Tornado
web2py Remarque: Bonjour le monde
Tutoriel RabbitMQ 1 ("Hello World!")
Restriction IP avec Flask
Hello World avec Django
Le premier Hello World de Django
Programmation avec Python Flask
Prédisons les survivants du Hello World de Kaggle, Titanic par régression logistique-Modélisation-
Hello World avec Google App Engine (Java 8) + Spring Boot + Gradle
Hello World avec Google App Engine (Java 8) + API Servlet 3.1 + Gradle
Déployez Flask avec ZEIT maintenant
Touch Flask + courir avec Heroku
Test unitaire du flacon avec pytest
API avec Flask + uWSGI + Nginx
Développement d'applications Web avec Flask
Hello World en langue GO
Voir la couverture du flacon avec pytest-cov
Application Web avec Python + Flask ② ③
Prédisons les survivants de Hello World, Titanic de Kaggle par régression logistique-Prédiction / Évaluation-
Téléchargement de fichiers avec Flask + jQuery
Hello World (débutant) avec Django
Hello World avec Google App Engine (Java 11) + Spring Boot + Gradle
Application Web avec Python + Flask ④
Commencez avec Windows, pas si effrayant Nim ① C'est comme bonjour le monde.
Un débutant en Python a essayé Hello World en 30 secondes en utilisant le microframework Flask
[Connexion LINE] Vérifier l'état avec Flask
Faisons "Hello World" en 40 langues! !!
Bases de SNS Python faites avec Flask
[Mémo] Liens lors du développement avec Flask
Introduction à TensorFlow - Hello World Edition
Bonjour tout le monde! (Chaîne de blocs viables minimum)