python flask tutorial introduction flask
Aquest tutorial introductori de Python Flask explica què és Flask, instal·lació de Python, Virtualenv, exemple de Flask Hello World amb una secció sobre exemples de codi, depuració i proves:
El desenvolupament de llocs web és més un art que una habilitat. Requereix paciència i diligència, juntament amb perseverança, coratge i dedicació per crear allò necessari perquè sigui un èxit real. Actualment, és fonamental que els estudiants s’accelerin el més aviat possible.
Hem creat aquest tutorial de Python Flask perquè els estudiants puguin posar-se al dia i implementar una programació web senzilla i complexa mitjançant Python 3.
Aquest tutorial de Python Flask s'assembla més a un tutorial per a principiants de Flask, que tractarà sobre la instal·lació de Python, Virtualenv i altres paquets essencials. En aquesta sèrie de tutorials, també instal·larem Flask juntament amb els altres connectors Flask necessaris. També hem inclòs una secció sobre depuració de codi, proves i integració contínua mitjançant Git Actions.
Què aprendreu:
Llista de tutorials d'aquesta sèrie Flask
Tutorial # 1: Python Flask Tutorial: Introducció a Flask per a principiants
Tutorial # 2: Plantilla de flascó, formulari, visualització i redirecció amb exemples
Tutorial # 3: Gestió de la base de dades de Flask: com s'utilitza Flask amb una base de dades
Tutorial # 4: Aplicació de Flask i disseny del projecte Flask amb Blueprint & Bootstrap
Tutorial # 5: Patrons de disseny de flascons i bones pràctiques per a aplicacions web
Tutorial # 6: Tutorial API de Flask amb exemple | Ampliant Flask amb API
Tutorial # 7: Django Vs Flask Vs Node: quin marc triar
Tutorial # 8: Top 31 de les preguntes més populars amb entrevistes de Python Flask amb respostes
Què és Flask
Flask és un marc de desenvolupament web. És un framework amb un servidor de desenvolupament integrat i un depurador.
quina és la clau de seguretat del router
El marc Flask en si mateix és diferent dels altres arquetips, ja que permet als desenvolupadors web ser flexibles i adaptar-se còmodament als canvis que es publiquen amb freqüència a la comunitat de desenvolupament de programari.
Per a què s’utilitza Flask
Utilitzem el marc Flask per desenvolupar aplicacions web en llenguatge de programació Python. S'integra amb altres serveis i API de tercers per aportar riquesa i significat a l'aplicació en desenvolupament. Els conceptes bàsics de Flask són senzills i tenen una petita empremta.
Comencem amb aquest tutorial de Python Flask per entendre el desenvolupament web amb l'ajuda d'un dipòsit de Flask GitHub. Tanmateix, abans de continuar, cloneu el projecte de Github per facilitar el seguiment dels exemples de codi discutits.
Requisits previs
A part dels títols esmentats en aquesta secció, es recomana crear un compte de Github. Procedim amb els passos esmentats a continuació dels requisits previs.
Pas 1: instal·leu Python
Comproveu si heu instal·lat Python 3 o no. Si no, descarregueu Python 3 des de aquí i instal·leu-lo segons el vostre sistema operatiu.
Pas 2: creeu un entorn virtual Python
Creeu un entorn virtual mitjançant l'ordre següent.
python3 -m venv venv
Utilitzeu l'ordre següent per activar l'entorn virtual de Python.
source venv/bin/activate
A continuació hem posat un exemple d’activació i desactivació de l’entorn virtual.
Totes les ordres posteriors d’aquest tutorial s’han d’executar en un entorn virtual activat. Instal·leu el paquet de rodes perquè puguem construir rodes a l’entorn virtual.
pip install wheel
Pas 3: descàrrega del flascó i insall
Hem de realitzar els passos de descàrrega de Flask i instal·lar Flask seguint els passos esmentats a continuació.
Ara instal·leu Flask.
pip install flask
A alguns ens agrada treballar junt amb els darrers canvis en el codi font. Podem utilitzar l'ordre que s'indica a continuació per instal·lar els canvis més recents a les fonts de Flask.
Feu un directori temporal.
mkdir tmp
Ara instal·leu Flask des del dipòsit de Github. Cal que estigueu connectat a Internet perquè funcioni l’ordre següent.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Mireu les sortides de la consola per comprovar la instal·lació correcta. Ara comproveu si podem accedir a les ordres de Flask.
flask --help
És possible que vegeu algunes excepcions sobre l'absència d'una aplicació Flask. Tanmateix, descuideu-les, ja que no hem creat cap aplicació Flask. La nostra aplicació és una instància de Flask, que és un embolcall del marc web de Werkzeug i del motor de plantilla Jinja.
Eina
Werkzeug és un joc d'eines WSGI. WSGI és només una convenció de trucades per reenviar servidors web sol·licituds web a aplicacions web escrites en llenguatge de programació Python.
Jinja
La plantilla és un conjunt de competències essencials per als desenvolupadors web. Jinja és un motor de plantilles completament popular i popular per a Python. És un llenguatge força expressiu i proporciona un conjunt robust d’eines als autors de plantilles.
Pas 4: instal·leu MongoDB
Seguiu els passos esmentats a continuació per instal·lar MongoDB. Hem esbossat els passos per instal·lar-lo en un Linux basat en Debian. Si utilitzeu un altre sistema operatiu, accediu al fitxer enllaç i instal·leu-lo segons el sistema operatiu previst.
Instal·leu gnupg per importar la clau GPG pública de MongoDB.
sudo apt-get install gnupg
Ara importeu la clau mitjançant l'ordre següent.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Creeu el fitxer de llista de fonts segons la vostra distribució de Linux. Hem afegit la llista de fonts segons Debian.
echo 'deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Executa l'ordre d'actualització
sudo apt-get update
Ara instal·leu MongoDB mitjançant l'ordre següent.
sudo apt-get install -y mongodb-org
Quan la instal·lació tingui èxit, inicieu MongoDB mitjançant l'ordre següent.
sudo systemctl start mongod
Comproveu l'estat de MongoDB mitjançant l'ordre següent.
sudo systemctl status mongod
Ara assegureu-vos que mongod s'iniciï automàticament en reiniciar el sistema emetent l'ordre que es mostra a continuació.
sudo systemctl enable mongod
Ara comproveu si us podeu connectar al servidor MongoDB mitjançant el client mongo.
mongo
A l'intèrpret d'ordres mongo, proveu d'utilitzar l'ajuda i mostreu les ordres dbs.
Creeu una aplicació Flask
Utilitzeu l'ordre següent per instal·lar flask-appbuilder i mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Creeu una aplicació esquelètica amb els valors que es mostren com a comentaris al fragment de codi següent.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Veurem la sortida similar a la que es mostra a continuació.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
Feu un cop d'ull al disseny del projecte i de l'aplicació. A continuació hem mostrat la sortida de l’ordre tree.
Vegem el fitxer de configuració de Flask. És una configuració predeterminada generada com a resultat de l'última ordre. Descomenta Cyborg tema, com es mostra a continuació.
# Theme configuration for Cybord=g # these themes are located on static/appbuilder/css/themes # We can create our own and easily use them by placing them on the same dir structure to override #APP_THEME = 'bootstrap-theme.css' # default bootstrap #APP_THEME = 'cerulean.css' # cerulean #APP_THEME = 'amelia.css' # amelia theme #APP_THEME = 'cosmo.css' # cosmo theme APP_THEME = 'cyborg.css' # cyborg theme #APP_THEME = 'flatly.css' # flatly theme
Per executar l'aplicació esquelet, utilitzeu l'ordre que es mostra a continuació al terminal.
flask run
Flask Hello World
Per crear el vostre primer programa a flaskTutorialApp, obriu el fitxer views.py al directori de l'aplicació i afegiu el codi següent. Cerqueu les declaracions d’importació que apareixen al fitxer. Afegiu aquestes afirmacions si encara no hi són presents.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): ''' This first view of the tutorial ''' route_base = '/hello' @expose('/') def hello(self): return 'Hello, World! from Software Testing Help' # at the end of the file appbuilder.add_view_no_menu(HelloWorld())
Deseu el fitxer després d'afegir el codi font anterior. Aneu al directori arrel del projecte i utilitzeu l’ordre següent per executar el servidor de desenvolupament de Flask.
flask run
Ara aneu a http: // localhost: 5000 / hello / per veure la sortida al navegador.
Depuració
Actualment, el servidor de desenvolupament no s’executa en mode de depuració. Sense el mode de depuració, és difícil trobar els errors al codi font de l’aplicació Flask.
El mode de depuració a Flask té com a resultat:
- El mode de depuració activa el recarregador automàtic. Vol dir que no hem de reiniciar el servidor de desenvolupament després de fer canvis al codi font de l'aplicació.
- El mode de depuració activa el depurador de Python. Podem inspeccionar els valors de les variables durant l’excepció.
- El mode de depuració permet la depuració d'aplicacions de Flask. Podem comprovar els valors de diverses variables a les sessions de depuració.
Atureu el servidor de desenvolupament si ja s'està executant. Podeu fer servir el mateix CTRL + C o la interrupció del teclat.
Utilitzeu el codi següent per habilitar el mode de depuració i executar el servidor de desenvolupament temporalment.
FLASK_ENV=development flask run
Cerqueu a la consola el PIN del depurador i anoteu-lo.
Ara canviem la vista HelloWorld escrita anteriorment amb les línies següents del fragment de codi. Tingueu en compte que hem introduït una excepció personalitzada.
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Aneu a http: // localhost: 5000 / hello /, i veureu que l'aplicació ha generat una excepció. El navegador mostra la traça de la pila, com es mostra a continuació.
![Visualització de depuració de flascons al navegador](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-4.png)
A més, mireu la consola on s’executa el servidor de desenvolupament. Veureu que aquesta vegada, els canvis a views.py es detecten automàticament i el servidor de depuració es reinicia per si mateix. Ara no cal reiniciar-lo manualment.
element de selecció de selecció per selector css
La consola tindrà línies, com es mostra a continuació. Hem d’anotar el PIN de depuració per més endavant.
* Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading 2020-06-02 14:59:49,354:INFO:werkzeug: * Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading * Restarting with stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restarting with stat * Debugger is active! * Debugger PIN: 150-849-897
Ara comproveu la traça de la pila al navegador i aneu a la darrera línia. Feu-hi clic per ampliar la vista i feu clic a la icona CLI per obrir l'intèrpret d'ordres en mode interactiu.
![Icona de Shell interactiu del mode de depuració](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-5.png)
Un cop l'obriu, veureu que el navegador mostrarà una sol·licitud per al PIN de depuració. Doneu el PIN de depuració i feu clic a D'acord.
![PIN de depuració del mode de depuració](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-6.png)
Un cop avancem després d’haver donat el PIN de depuració, podem accedir al shell interactiu.
Accedim a l'intèrpret d'ordres des del navegador i podem inspeccionar els valors de les variables per trobar la causa de l'excepció i gestionar l'error d'una manera millor. Mireu un dels exemples que es mostren a la imatge següent.
![Variables en mode de depuració](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-7.png)
Ara canvieu el codi a view.py, tal com es mostra a continuació. Tingueu en compte que hem comentat la línia que tenia l'excepció plantejada.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Prova de l'aplicació Flask
Ara anem a escriure la nostra primera prova per a l’aplicació Flask que estem desenvolupant. Primer, instal·leu el PyTest. PyTest és un marc de proves. Ens ajuda a escriure un codi millor.
A més, només perquè podem escriure proves unitàries mentre desenvolupem les nostres aplicacions, és possible seguir l'enfocament TDD. TDD significa Desenvolupament Test-Driven. En els nostres tutorials posteriors d’aquesta sèrie, sempre escriurem primer proves i desenvoluparem les nostres opinions o models.
Instal·leu PyTest
pip install pytest
Ara creeu un directori anomenat tests dins del directori de l'aplicació i, en aquest, creeu un fitxer anomenat test_hello.py. Escrivim la nostra primera prova unitària per provar la nostra visió.
Copieu el fragment de codi següent i enganxeu-lo a test_hello.py.
#!/usr/bin/env python from app import appbuilder import pytest @pytest.fixture def client(): ''' A pytest fixture for test client ''' appbuilder.app.config('TESTING') = True with appbuilder.app.test_client() as client: yield client def test_hello(client): ''' A test method to test view hello ''' resp = client.get('/hello', follow_redirects=True) assert 200 == resp.status_code
Utilitzeu l'ordre pytest següent per executar les proves. PyTest recopila automàticament les proves i mostra els resultats a la sortida estàndard.
![Resultats PyTest a la línia d](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-8.png)
Creeu un flux de treball GitHub
Utilitzem Git Actions per crear un flux de treball CI / CD per a la nostra aplicació de mostra. Seguiu els passos esmentats a continuació per al vostre projecte.
Pas 1: aneu a la pàgina del dipòsit a GitHub. Feu clic a Git Actions.
![Feu clic a Git Actions](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-9.png)
Pas 2: Desplaceu-vos cap avall a la pàgina i cerqueu una plantilla de flux de treball existent per a un paquet Python.
![Feu clic a Python Package Git Workflow](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-10.png)
Pas 3: configureu el flux de treball del paquet Python.
![Configureu el flux de treball del paquet Python](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-11.png)
Pas 4: un cop oberta la configuració del flux de treball python-package.yml, actualitzeu-la en funció dels valors d'etiqueta addicionals de yaml indicats.
name: flaskTutorialApp jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: (3.7, 3.8) mongodb-version: (4.2) steps: - name: Start MongoDB uses: supercharge/mongodb-github-action@1.3.0 with: mongodb-version: ${{ matrix.mongodb-version }} # other values
Volem provar la nostra aplicació Flask a la distribució Ubuntu Linux més recent. A més del sistema operatiu, volem executar les nostres proves només mitjançant Python 3.7 i Python 3.8.
Pas 5: cometeu python-package.yml amb els valors actualitzats.
![Fitxer del paquet Python de Git Actions](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-12.png)
Pas 6: El commit a la pàgina anterior ens porta als treballs de GitActions.
![Feu clic a Accions de Git](http://myservername.com/img/other/61/python-flask-tutorial-introduction-flask-13.png)
Pas 7: (Opcional)
A la pàgina Treballs de Github de l’aplicació de tutorial de mostra, podem crear una insígnia i col·locar-la al fitxer README.md per mostrar l’estat de la compilació.
Ara, sempre que es comprometin els canvis a la branca mestra, se seguirà Git Workflow, tal com s’escriu a python-package.yml, i s’executarà a Git Actions.
Conclusió
En aquest tutorial, hem tractat tots els conceptes bàsics, des dels requisits previs fins a la configuració del flux de treball CI / CD per a una aplicació web desenvolupada amb Flask - Un marc de desenvolupament web basat en Python.
Aquest tutorial cobreix tots els passos necessaris, com ara instal·lar Python, descarregar i instal·lar Flask, treballar amb Flask-Appbuilder, fer proves amb PyTest, etc. per començar a desenvolupar web amb Python. La comunitat de desenvolupament web sol comparar Flask amb un altre marc de desenvolupament web de Python popular anomenat Django.
Explicarem aquestes diferències i també compararem aquests marcs en un dels tutorials d’aquesta sèrie.
Lectura recomanada
- Django Vs Flask Vs Node: quin marc triar
- Tutorial API de Flask amb exemple | Ampliant Flask amb API
- Aplicació de Flask i disseny del projecte Flask amb Blueprint & Bootstrap
- Gestió de la base de dades de Flask: com s'utilitza Flask amb una base de dades
- Patrons de disseny de flascons i bones pràctiques per a aplicacions web
- Plantilla de flascó, formulari, visualització i redirecció amb exemples
- Top 31 de les preguntes més populars amb entrevistes de Python Flask amb respostes
- Tutorial Python per a principiants (entrenament pràctic GRATU PyT en Python)