Explosive Geschwindigkeit mit Python (Flasche)! Web-API-Entwicklung

Überblick

Bei der Entwicklung einer bestimmten Webanwendung musste die Web-API eines anderen Servers aufgerufen werden. Es ist ein Memo, dass eine einfache Web-API mit explosiver Geschwindigkeit erstellt wurde, da zum Zeitpunkt der Entwicklung eine Pseudoumgebung erforderlich ist.

Umgebung

Python-Installation

Laden Sie das Installationsprogramm von der folgenden Site herunter und starten Sie das Installationsprogramm https://www.python.jp/install/windows/install_py3.html

Überprüfen Sie die Optionen zum Zeitpunkt der Installation, z. B. "Für alle Benutzer installieren" und "Pfad zu Umgebungsvariablen hinzufügen". (Wenn Sie dies nicht überprüfen, wird es im Ordner des Anmeldebenutzers des Betriebssystems installiert, und Sie müssen die Umgebungsvariablen selbst festlegen.)

Wenn das Installationsprogramm abgeschlossen ist, an der Eingabeaufforderung

python --version

Die Installation ist abgeschlossen, wenn die Version herauskommt.

Installation der erforderlichen Pakete

Führen Sie dann die folgenden Befehle an der Eingabeaufforderung aus (mit Administratorrechten ausführen).

Flasche einbauen

pip install bottle

DB verwendete PostgreSQL. Verwenden Sie pycopg2 für die DB-Verbindung.

pip install psycopg2

Hallo Welt

Stellen Sie sicher, dass es funktioniert. Erstellen Sie index.py und bearbeiten Sie es wie folgt.

index.py


from bottle import route, run, template 
 
@route('/hello/<name>')
def index(name):
  return template('<b>Hello {{name}} </b>!', name=name)
 
run(host='localhost', port=8080)

Das ist es ... nicht wahr?

Wenn Sie "python index.py" an der Eingabeaufforderung ausführen, wird es auf localhost gestartet. Und wenn Sie mit Ihrem Browser auf http: // localhost: 8080 / hello / tsumasakky zugreifen Hallo tsumasakky! Wird auf dem Bildschirm angezeigt und ist erfolgreich.

Aufbau eines Webservers

Apache installieren

https://www.apachelounge.com/download/VC15/ Hier herunterladen.

Kopieren Sie den entpackten "Apache24" direkt unter C auf den Server

WSGI-Setup

Laden Sie die Datei von der folgenden Site herunter https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

Obwohl es ein Dateiname ist

Apache 2.4 VC "15" Python"37" Windows "64"bit

Also "mod_wsgi-4.6.8 + ap24vc15-cp37-cp37m-win_amd64.whl" Ich habe heruntergeladen. Bitte laden Sie entsprechend Ihrer Umgebung herunter.

Installieren Sie an der Eingabeaufforderung. (Geben Sie den Speicherort der heruntergeladenen Datei an.)

pip insatll mod_wsgi-4.6.8+ap24vc15-cp37-cp37m-win_amd64.whl

Bearbeiten von httpd.conf

Führen Sie zunächst den folgenden Befehl an der Eingabeaufforderung aus, um die Einstellungen für mod_wsgi abzurufen.

mod_wsgi-express module-config

Dann wird es wie folgt angezeigt.

LoadFile "c:/program files/python37/python37.dll"  
LoadModule wsgi_module "c:/program files/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"  
WSGIPythonHome "c:/program files/python37"  

Kopieren Sie die angezeigten Einstellungen und fügen Sie sie der httpd.conf von Apache hinzu. (Gegen Ende des Lademoduls) Fügen Sie außerdem das Routing zu dem Adapter hinzu, der später erstellt werden soll.

httpd.conf


WSGIScriptAlias /api C:\Apache24\htdocs\adapter.wsgi

Adapter erstellen

Erstellen Sie eine adapter.wsgi-Datei in dem in WSGIScriptAlias festgelegten Pfad, um festzustellen, ob die wsgi-Einstellungen funktionieren.

adapter.wsgi


def application(environ,start_response):
    status = '200 OK'
    output = b'Hello World!'
    response_headers = [('Content-type','text/plain'),
                        ('Content-Length',str(len(output)))]
    start_response(status,response_headers)
    return [output]

Starten Sie Apache neu und gehen Sie zu http: // localhost / api. Wenn "Hello World" herauskommt, ist es ein Erfolg!

Starten Sie Ihre eigene App über den Adapter

Bearbeiten Sie die index.py und adapter.wsgi von früher.

adapter.wsgi


import sys, os
dirpath = os.path.dirname(os.path.abspath(__file__))
sys.path.append(dirpath)
os.chdir(dirpath)
import bottle
import index
application = bottle.default_app()

index.py


from bottle import route, run, template
from bottle import TEMPLATE_PATH
import psycopg2

@route('/hello')
def hello():
    return template('<b>Hello World!</b>',)

@route('/users')
def users():
    conn = psycopg2.connect("postgresql://postgres:postgres@localhost:5432/sample")
    cur = conn.cursor()
    cur.execute('select * from sample.users;')
    users = cur.fetchall()
    cur.close()
    conn.close()
    return template('<b>{{users}}</b>!', users=users)
 
if __name__ == '__main__':
    run(host='localhost', port=8080, debug=True, reloader=True)

Als ich Apache neu startete und auf http: // localhost / api / users zugreifen konnte, konnte ich die Liste der Benutzer aus der Datenbank abrufen.

Impressionen

Obwohl der Aufbau des Servers einige Zeit in Anspruch nahm, war die eigentliche Anwendungscodierung in etwa 10 Minuten abgeschlossen! Es ist super explosiv!

Übrigens, danach erfasst pycopg2 Daten im Wörterbuchtyp von DB, konvertiert sie in dict-> json und gibt sie ~ zurück Ich habe eine API mit einer solchen Antwort erstellt.

Sie können es nicht so machen, oder Sie können es tun! Bitte kommentieren Sie, wenn Sie möchten!

Bis zum Ende Danke fürs Lesen. (m´ ・ ω ・ `) m

Referenz

Recommended Posts

Explosive Geschwindigkeit mit Python (Flasche)! Web-API-Entwicklung
Web-API mit Python + Falcon
Die Abfrage [Webentwicklung mit Python] wird ebenfalls umgeleitet
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
[Webentwicklung mit Python] Vorsichtsmaßnahmen beim Speichern von Cookies
Berechnen Sie den Gaußschen Kernel auch mit Python mit explosiver Geschwindigkeit
Verwenden Sie die Trello-API mit Python
Web Scraping mit Python + JupyterLab
BASIC-Authentifizierung mit Python-Flasche
EXE Web API von Python
Verwenden Sie die Twitter-API mit Python
Entwicklung von Webanwendungen mit Flask
Rufen Sie die API mit python3 auf.
Webanwendung mit Python + Flask ② ③
Verwenden Sie die Unterschall-API mit Python3
Web Scraping Anfänger mit Python
Optimieren Sie die Websuche mit Python
Webanwendung mit Python + Flask ④
Erstellen Sie mit hug einen Web-API-Server mit explosiver Geschwindigkeit
[IPdb] Anfänger in der Webentwicklung haben versucht, das Debuggen mit Python zusammenzufassen
Explosive Geschwindigkeit! Verwenden von Python Simple HTTP Server für die Kintone-Entwicklung
Erstellen Sie mit Falcon einen Light-Speed-Web-API-Server
Webanwendung mit Python3.3.1 + Flasche (1) - Ändern Sie die Vorlagen-Engine in jinja2
Erstellen Sie Awaitable mit der Python / C-API
Holen Sie sich Bewertungen mit Python Googlemap API
Implementierter Dateidownload mit Python + Bottle
Führen Sie Rotrics DexArm mit der Python-API aus
Erste Schritte mit Python-Webanwendungen
Web Scraping mit Python Erster Schritt
Ich habe versucht, WebScraping mit Python.
Überwachen Sie Python-Webanwendungen mit Prometheus
Quine Post mit Qiita API (Python)
Holen Sie sich Web-Screen-Capture mit Python
Klicken Sie mit Python auf die Etherpad-Lite-API
Othello-Spieleentwicklung mit Python
Klicken Sie auf die Web-API in Python
Beschleunigen Sie Python mit numba grob
Richten Sie mit Atom eine Python-Entwicklungsumgebung ein
Anwendungsentwicklung mit Docker + Python + Flask
Rubyist hat versucht, eine einfache API mit Python + Flasche + MySQL zu erstellen
[Webentwicklung mit Python] Misst bei der Ausgabe von HTML gegen verstümmelte Zeichen
Sammeln von Informationen von Twitter mit Python (Twitter API)
[Python] Webanwendung von 0! Hands-on (3) -API-Implementierung-
Erstellen Sie automatisch eine Python-API-Dokumentation mit Sphinx
WEB-Scraping mit Python (für persönliche Notizen)
[Entwicklungsumgebung] Python mit Xcode [Mit Bildschirmübergang]
Einfacher Slack API-Client mit Python
Holen Sie sich Lebensmitteldaten mit Amazon API (Python)
Python: Lesen von JSON-Daten von der Web-API
Erste Schritte mit Python Web Scraping Practice
Dämonisieren Sie eine Python-Webanwendung mit Supervisor
Entwicklung und Bereitstellung der REST-API in Python mit Falcon Web Framework
[Persönlicher Hinweis] Scraping von Webseiten in Python3
Laden Sie mit Python Dateien im Web herunter