Rubyist a essayé de créer une API simple avec Python + bouteille + MySQL

python-framework.png

Contexte

Je développe habituellement avec Ruby, mais à mesure que le travail du système d'analyse de big data a augmenté, il est devenu nécessaire de jouer avec python, donc tout d'abord, un système avec un simple rôle de type API avec une bouteille de cadre légère J'ai décidé de le faire.

Sentiments divers

C'est incroyablement léger et facile, vous ne pouvez donc utiliser que les bonnes parties de python et utiliser le langage principal.

Aperçu de ce que j'ai fait

① Hit l'API depuis l'application ruby ② Obtenez les données dans MySQL avec l'application écrite en python ③ Calculer avec python ④ Renvoyer le résultat du calcul à l'application ruby

la mise en oeuvre

    1. Créez un environnement virtuel avec virtualenv
pip install virtualenv
virtualenv bottle_sample
cd bottle_sample
source bin/activate
  1. Installation de bouteille
pip install bottle
    1. Mettre à jour les données avec / update

score_calculator.py


# -*- coding: utf-8 -*-
from bottle import route, run
import networkx as nx

db_name = {Nom de la base de données}
host = {Hôte DATABASE}
username = {Nom d'utilisateur MySQL}
passwd = {Mot de passe MySQL}

@route('/update')
def update
  g = nx.DiGraph()
  import mysql.connector
  connect = mysql.connector.connect(db=db_name, host=host, port=3306, user=username, passwd=passwd)

  cur=connect.cursor()
  cur.execute("select from_user_id,to_user_id from awesome_graph_data)                                                                                      
  rows = cur.fetchall()
  for row in rows:
    if row[0] is not None:
      g.add_node(row[0])
      g.add_node(row[1])
      g.add_edge(row[0],row[1])

    cur.close()
    connect.close()
  pr=nx.pagerank(g,alpha=0.85,personalization=None, max_iter=500)
  
  for id, score in pr.items():
    print id,score #Je vais l'omettre cette fois, mais vous pouvez l'enregistrer dans mysql ici
  return str(pr)

Vous pouvez maintenant calculer le pagerank à partir du graphique dirigé et le sauvegarder dans mysql.

  1. Obtenez un score avec / score / {user_id}

score_calculator.py


@route('/score/<user_id>')
def score
  import mysql.connector
  connect = mysql.connector.connect(db=db_name, host=host, port=3306, user=username, passwd=passwd)

  cur=connect.cursor()
  cur.execute("select score from scoda_data where user_id = {{user_id}}")                                                                                      
  score = cur.fetchall()
  return score

Vous pouvez maintenant obtenir le score d'un user_id spécifique.

Résumé

Des applications très simples peuvent être facilement créées avec python + bouteille. Vous pouvez également créer facilement un fichier de vue pour créer un supplément Web.

J'ai trouvé intéressant de sortir avec divers calculs qui n'allaient pas bien avec le rubis.

Recommended Posts

Rubyist a essayé de créer une API simple avec Python + bouteille + MySQL
J'ai essayé de créer une application todo en utilisant une bouteille avec python
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
J'ai essayé de créer une API de reconnaissance d'image simple avec Fast API et Tensorflow
J'ai créé une API Web
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé de créer une application de notification de publication à 2 canaux avec Python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python
Je veux faire un jeu avec Python
Essayez de créer un code de "décryptage" en Python
Essayez de créer un groupe de dièdre avec Python
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
Faisons un outil de veille de commande avec python
Créez un Slackbot simple avec un bouton interactif en python
[Analyse des brevets] J'ai essayé de créer une carte des brevets avec Python sans dépenser d'argent
Essayez de créer un jeu simple avec Python 3 et iPhone
J'ai créé une API de recherche de château avec Elasticsearch + Sudachi + Go + echo
Un débutant en apprentissage automatique a essayé de créer un modèle de prédiction de courses de chevaux avec python
Faites une loterie avec Python
Qu'est-ce que Dieu? Créez un chatbot simple avec python
[Vagrant] Configurer un serveur API simple avec python
J'ai essayé de faire une simulation de séparation de source sonore en temps réel avec l'apprentissage automatique Python
[Mac] Je souhaite créer un serveur HTTP simple qui exécute CGI avec Python
J'ai essayé de créer diverses "données factices" avec Python faker
La première API à créer avec le framework Python Djnago REST
Expérimentez pour créer un PDF indépendant pour Kindle avec Python
Comment faire un simple jeu Flappy Bird avec Pygame
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
J'ai créé un éditeur de texte simple en utilisant PyQt
Faisons une interface graphique avec python.
Créer un système de recommandation avec python
Faisons un graphe avec python! !!
[1 hour challenge] J'ai essayé de créer un site de bonne aventure qui soit trop adapté à Python
J'ai essayé de créer une API RESTful en connectant l'API rapide du framework Python explosif à MySQL.
J'ai essayé de créer un générateur qui génère une classe conteneur C # à partir de CSV avec Python
Une histoire sur l'ajout d'une API REST à un démon créé avec Python
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
[Python] J'ai essayé d'implémenter un tri stable, alors notez
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
Créez un simple OMR (lecteur de feuille de marque) avec Python et OpenCV
J'ai essayé de créer une liste de nombres premiers avec python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
Faire une demande de Device Farm (appium python) à API Gateway
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
[Python] Japonais simple ⇒ J'ai essayé de créer un outil de traduction en anglais
J'ai essayé de faire une étrange citation pour Jojo avec LSTM
Comment envoyer une requête à l'API DMM (FANZA) avec python
J'ai essayé de créer une fonction de similitude d'image avec Python + OpenCV
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go