[Python] Application Web à partir de 0! Pratique (3) - Mise en œuvre de l'API

Aperçu

J'ai eu l'opportunité de créer une application web à partir de zéro avec Python, donc en résumé! Cet article concerne la mise en œuvre de l'API.

Je veux que cette personne lise

objectif

L'objectif est de créer une application Web avec la fonctionnalité CURD en utilisant HTML, CSS, JavaScript, Python et SQL.

Les choses nécessaires

1. Préparez les données dans la base de données

Tout d'abord, je vais essayer de me connecter à la base de données à partir de l'API et d'obtenir les données. Pour cela, préparons les données de test avec pgAdmin. Démarrez pgAdmin4, cliquez avec le bouton droit sur TodoDatabase> Schémas> public> Tables> todo et sélectionnez Afficher / Modifier les données> Toutes les lignes. 2020-07-31_18h33_10.png

titre: Test created: 2020-07-31 18:39:00 is_deleted: false Entrez et appuyez sur le bouton Enregistrer les modifications de données.

2. Essayez de vous connecter à la base de données depuis l'API

Utilisez le pilote pour PostgreSQL pour vous connecter à la base de données. Il y en a plusieurs, mais j'utiliserai le plus important (le plus installé) "psycopg2".

Installez avec la commande suivante à partir de l'invite de commande. pip install psycopg2

Réécrivez ensuite index.py comme suit.

index.py


# -*- coding:utf-8 -*-

#Charger un package externe
from bottle import route, run
import psycopg2

#Obtenez une connexion à la base de données
def get_connection():
  return psycopg2.connect("host=localhost port=5432 dbname=TodoDatabase user=postgres password=postgres")

#Obtenez Hello World
@route('/hello')
def hello():
  # Hello World!Renvoie la chaîne de caractères
  return "Hello World!"

#Obtenir les données Todo
# @route('/todos')Par, http://localhost:8080/Vous pouvez y accéder avec les todos URL
# with get_connection() as conn:Ferme automatiquement la connexion à la fin de la portée
@route('/todos')
def getTodos():
  with get_connection() as conn:
    with conn.cursor() as cur:
      #Exécuter SQL
      cur.execute('SELECT * FROM todo')
      #Obtenir 1 résultat de requête dans la base de données
      data = cur.fetchone()
      #Convertissez les données acquises à partir de la base de données en une chaîne de caractères et renvoyez-la
      return str(data)

#Configuration de l'exécution du serveur Web
#URL"http://[host]:[port]/[route]"Devient la composition de
run(host='localhost', port=8080, debug=True)

Déplaçons-le sans réfléchir pour le moment! Appuyez sur F5 comme vous l'avez fait dans Hello World et sélectionnez "Fichier Python" pour démarrer le serveur. Accédez ensuite à http: // localhost: 8080 / todos avec votre navigateur. image.png Les données extraites de la base de données s'affichent!

Résumé

Nous avons implémenté une API qui affiche les données de la base de données!

la prochaine fois···

Si elle est laissée telle quelle, il est difficile de comprendre comment les données seront renvoyées par l'API ... n'est-ce pas? (Entraînement) Convertissons les données de la base de données au format json pour en faciliter l'utilisation!

Recommended Posts

[Python] Application Web à partir de 0! Pratique (3) - Mise en œuvre de l'API
[Python] Application Web à partir de 0! Pratique (2) -Bonjour le monde-
[Python] Application Web à partir de 0! Pratique (4) - Mise en forme des données-
[Python] Application Web à partir de 0! Pratique (0) -Construction environnementale-
[Python] Application Web à partir de 0! Pratique (1) -Conception, construction DB-
Python: lecture de données JSON à partir de l'API Web
Acquisition de données à partir de l'API d'analyse avec l'application Web Client API Google pour python Partie 2
API Web EXE par Python
API Web avec Python + Falcon
Application Web avec Python + Flask ② ③
Utilisez l'API e-Stat de Python
Application Web avec Python + Flask ④
Utilisez l'API kabu Station® de Python
Accédez à l'API Web en Python
Utilisez l'API Flickr de Python
python Obtenez la météo à venir de l'API météo
Exécutez Ansible à partir de Python à l'aide de l'API
Utiliser l'API Google Analytics de Python
Gérer l'API SOAP depuis Python (Zeep)
Collecter des informations sur Twitter avec Python (API Twitter)
Utiliser l'API Google Cloud Vision de Python
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
[Python] Une application web rapide avec Bottle!
[Python] Conception d'applications Web pour l'apprentissage automatique
Exécutez une application Web Python avec Docker
Explication API pour toucher mastodonte de python
Connectez-vous à l'API Websocket de Coincheck depuis Python
Exécuter des scripts Python à partir d'applications C # GUI
Comment ouvrir un navigateur Web à partir de python
Procédure pour utiliser l'API WEB de TeamGant (en utilisant python)
sql à sql
Étapes pour développer une application Web en Python
[Python] Flux du scraping Web à l'analyse des données
MeCab de Python
Vitesse explosive avec Python (bouteille)! Développement d'API Web
Obtenez uniquement des articles de pages Web en Python
Essayez d'accéder à l'API YQL directement depuis Python 3
Extraire des données d'une page Web avec Python
Tendances 2014 du cadre d'application Web (PHP / Java / Ruby / Python / Perl)
Traduire de Visual Studio 2017 vers Python (API Microsoft Translator Text)
[Python] Récupérez le texte de la loi à partir de l'API e-GOV law
(Python) Essayez de développer une application Web en utilisant Django
Notification PUSH de Python vers Android à l'aide de l'API de Google
Obtenir le calendrier de l'API Garoon SOAP avec Python + Zeep
Analyser et visualiser JSON (application Web ⑤ avec Python + Flask)
Lancer une application Web Python sur Nginx + Gunicorn avec Docker
Application Web réalisée avec Python3.4 + Django (Construction de l'environnement Part.1)
Hit API REST de Watson à partir de Python avec IBM Bluemix
[python] [Gracenote Web API] Une petite personnalisation de pygn
Utilisez Thingsspeak de Python
Touchez MySQL depuis Python 3
Framework Web Django Python
Implémentation RNN en python
Exploitez Filemaker depuis Python
Utiliser fluentd de python
Implémentation ValueObject en Python
Accéder à bitcoind depuis python
Changements de Python 3.0 à Python 3.5