[PYTHON] Code-Server Lokale Umgebung (9) Bereiten wir eine MVC-Umgebung vor, einschließlich DB (6).

Dies ist der Artikel des Adventskalenders zum 9. Tag auf dem Code-Server 2019. Auch dieses Mal werde ich erklären, was Code-Server ist.

(1) Was ist ein Code-Server? (2) Erstellen Sie mit Docker Ihre eigene Code-Server-Umgebung (3) Versuchen Sie, das VSCode-Plugin zu verwenden (4) Bereiten wir eine MVC-Umgebung einschließlich DB usw. vor. (1) (5) Bereiten wir eine MVC-Umgebung einschließlich DB usw. vor. (2) (6) Bereiten wir eine MVC-Umgebung einschließlich DB usw. vor. (3) (7) Bereiten wir eine MVC-Umgebung einschließlich DB usw. vor. (4) (8) Bereiten wir eine MVC-Umgebung einschließlich DB usw. vor. (5) (9) Bereiten wir eine MVC-Umgebung einschließlich DB usw. vor. (6) (10) Bonus

(NEXT->) Online-Umgebungsversion 1. Tag Arbeitsumgebung verbessern

(..) Zum lokalen Erstellen einschließlich der Umgebung wie z. B. DB (..) Wie kann ich es online stellen? (..) Wie arbeite ich mit der neuesten trendigen Umgebung wie K8S? (..) Ich möchte Code-Server ändern, um es besser zu machen

Weiter vom letzten Mal werden wir APIs mit flask hinzufügen.

Was ist diesmal?

Das Terminal kann mehrere gleichzeitig starten

Entscheiden Sie, welche Art von API

Lassen Sie uns den zuvor erstellten Kolben ändern

main.py


from flask import Flask, request as fl_request, Request
from typing import Dict
import json
import logging

app = Flask(__name__)
logger = logging.getLogger("XXX")
logging.basicConfig(level=logging.DEBUG)

@app.route("/users")
def get_user_from_id():
    request:Request = fl_request
    input:Dict = request.args
    logger.debug("> input: {}".format(input))
    user:Dict = {
        "name":"one",
        "email":"[email protected]",
        "id":1}
    return json.dumps(user)

app.run("0.0.0.0",port=8080)

Wenn eine ID als "http: //0.0.0.0/users? Id = 1" übergeben wird, werden die dieser ID entsprechenden Benutzerinformationen zurückgegeben.

Versuche dich zu bewegen

Versuchen Sie, die Flasche zu starten.


$ python main.py 
 * Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
INFO:werkzeug: * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)

Öffnen Sie ein neues Terminal und drücken Sie den Befehl curl

$ curl 127.0.0.1:8080/users?id=1
{"name": "one", "email": "[email protected]", "id": 1}

Hoppla, Benutzerinformationen wurden angegeben.

Lesen Sie die Daten aus der Datenbank und versuchen Sie sie anzuzeigen

Dieses Mal verwende ich das Dataset-Paket, um db von Python aus zu betreiben. https://github.com/pudo/dataset

$ pip install dataset

Da mysql verwendet wird, fügen Sie das mysqlclient-Paket hinzu.

$ pip install mysqlclient

main.py


from flask import Flask, request as fl_request, Request
from typing import Dict
import json
import dataset
import logging

app = Flask(__name__)
logger = logging.getLogger("XXX")
logging.basicConfig(level=logging.DEBUG)

db:dataset.Database = dataset.connect('mysql://root:passwd@mysqld/app_db')

@app.route("/users")
def get_user_from_id():
    request:Request = fl_request
    input:Dict = request.args
    logger.debug("> input: {}".format(input))
    users_table:dataset.Table = db.get_table("users")
    user:Dict = users_table.find_one(id=int(input["id"]))
    return json.dumps(user)

app.run("0.0.0.0", port=8080)

Sie können mit dataset.connect eine Verbindung zur Datenbank herstellen und mit users_table.find_one Benutzerinformationen abrufen.

Versuche dich zu bewegen

Versuchen Sie, die Flasche zu starten.


$ python main.py 
 * Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
INFO:werkzeug: * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)

Öffnen Sie ein neues Terminal und drücken Sie den Befehl curl

$ curl 127.0.0.1:8080/users?id=1
{"name": "one", "email": "[email protected]", "id": 1}

Hoppla, Benutzerinformationen wurden angegeben.

PS

Lassen Sie uns anforderungs.txt erstellen !!

Es ist üblich, Python-Pakete in einer Datei zu speichern. https://pip.readthedocs.io/en/1.1/requirements.html

pip install -r requirements.txt

-r Befehlszeilenoptionen hinzufügen und ausführen.

requirements.txt


Flask==1.1.1
dataset==1.1.2
mysqlclient==1.4.6

Sie können auch eine Liste abhängiger Pakete in eine Datei mit "pip freeze> require_lock.txt" schreiben.

nächstes Mal

Versuchen Sie in Flask, einen Benutzer hinzuzufügen. Außerdem plane ich, die lokale Umgebungsversion in ungefähr zwei Fällen fertigzustellen und die Online-Umgebungsversion und die Magic Remodeling-Version einzugeben.

PS Quelle https://github.com/kyorohiro/advent-2019-code-server

Recommended Posts

Code-Server Lokale Umgebung (9) Bereiten wir eine MVC-Umgebung vor, einschließlich DB (6).
Code-Server Lokale Umgebung (4) Bereiten wir eine MVC-Umgebung einschließlich DB vor (1)
Code-Server Lokale Umgebung (5) Bereiten wir eine MVC-Umgebung einschließlich DB vor (2)
Code-Server-Online-Umgebung (6) Lassen Sie uns automatisieren
Code-Server Lokale Umgebung (3) Verwenden Sie das VSCode-Plugin
Einführung in Python Bereiten wir die Entwicklungsumgebung vor