[PYTHON] À propos de la gestion des données d'Anvil-App-Server

Préface C'est bien de pouvoir exécuter l'application sur ʻanvil-app-server`, mais exécutons l'application `News Aggregater` créée sur le site [Anvil](https://anvil.works/). Même ainsi, il ne semble pas se déplacer en douceur. .. .. J'ai fait des recherches.

Prémisse - Vous avez déjà créé l'application [News Aggregator](https://anvil.works/learn/tutorials/database-backed-apps) dans Anvil.

Environnement --Ubuntu 20.04 LTS Remix japonais --Hyper-V Manager 10.0.18362.1 - anvil-app-server v1.1

Téléchargez et exécutez l'application News Aggregator Une fois que vous avez créé l'application, vous pouvez la télécharger à partir de `Afficher l'historique` avec la commande` git clone`.

Cliquez sur "Afficher l'historique" anvil_newsaggrigator_download_1.png

Cliquez sur "Cloner avec Git" anvil_newsaggrigator_download_2.png

Copiez la ligne "git clone ssh: // ~" et exécutez-la avec la commande. anvil_newsaggrigator_download_3.png

git clone ssh://[email protected]:2222/324IEWAMVBYU2Y77.git News_Aggregater
  • XXXX est l'adresse e-mail du compte enregistré sur le site Anvil.
  • Si l'authentification à deux facteurs est activée, vous devrez utiliser la clé publique SSH, donc si vous l'utilisez, supprimez temporairement l'authentification en deux étapes. Je pense que ce sera plus facile si vous enregistrez la clé publique dans Git.

Lancez l'application avec ʻanvil-app-server`.

anvil-app-server --app News_Aggregater

Accédez à http: // localhost: 3030 avec un navigateur. anvil_app_server_url.png

Soudain, une erreur. anvil_app_server_NewsAggrigator_error.png

Problèmes Dans l'application News Aggrigator, la `catégorie` de l'article est enregistrée à l'avance dans le tableau` categories` et sélectionnée à partir de là, mais comme l'application ne contient pas de données de table," données vides " Entraînera une erreur.

Accéder à PostgreSQL de anvil-app-server avec pgadmin4 ʻAnvil-app-server` contient son propre serveur PostgreSQL, alors accédez-y.
  • Username : postgres --Password: (le répertoire où anvil-app-server a été exécuté) /.anvi-data/postgres.password --Port: (répertoire où anvil-app-server a été exécuté) /.anvi-data/db/postmaster.opts

Cependant, apparemment, il n'y a pas de table «articles» ou table «catégories» dont l'application devrait avoir besoin. anvil_db_tables.png

Pour le moment, si vous regardez le contenu de la table existante, vous trouverez les informations de la table créée par l'application dans la table ʻapp_storage_tables`. anvil_db_app_storage_tables.png

En outre, en regardant la création de données à l'aide de l'application todo qui peut être créée avec la commande create-anvil-app, il s'avère que des données ont été ajoutées à la table ʻapp_storage_data`. anvil_db_app_storage_tables.png

Que voulez-vous dire De ce qui précède,
  • Les informations de table utilisées par l'application sont stockées au format JSON dans la table ʻapp_storage_tables. --Lors de l'accès aux données depuis une application, accédez aux données au format JSON dans la table ʻapp_storage_data en fonction des informations de la table ʻapp_storage_tables`.

Il n'est pas impensable d'utiliser une méta-table du point de vue que la couche de données et la couche logique peuvent être mises en correspondance quel que soit le type d'application créée, mais c'est un mécanisme qui frustre le cœur des amateurs.

Autres Quand j'ai pu voir quel type de gestion des données était, je suis retourné sur le site d'Anvil et j'ai téléchargé les données afin d'importer les données. Cependant, les données téléchargées ne peuvent pas être importées facilement. Dans le cas de la table `categories` de News Aggrigator cette fois,
ID name
[65114][57547127] entertainment
[65114][57547131] business
[65114][57547132] travel
[65114][57547134] sport

Il est nécessaire d'écrire les données au format JSON sous une forme cohérente avec la méta-table de la base de données locale.

  • La colonne ID est "probablement" des informations lorsque les données sont sur le serveur hébergé par Anvil, donc cela ne semble pas avoir beaucoup de sens dans la base de données locale. Intuitivement, je pense qu'il s'agit d'ID de table et d'ID de ligne.

Postscript J'imagine que s'il s'agit d'un plan payant, il sera flexible dans une certaine mesure, et il y aura des conseils et des outils appropriés à utiliser, mais il est un peu difficile de créer une application avec un plan gratuit et de l'héberger vous-même. pense. Eh bien, si vous avez un forfait payant, vous pouvez définir votre propre domaine, c'est donc probablement la principale façon de l'utiliser.

Recommended Posts

À propos de la gestion des données d'Anvil-App-Server
À propos de tout numpy
À propos de l'attribution de numpy.ndarray
À propos de MultiIndex of Pandas
À propos de la variable du chainer
Pré-traitement des données préfectorales
Sélection des données de mesure
À propos de l'inefficacité du transfert de données dans luigi on-memory
À propos de max_iter de LogisticRegression () de scikit-learn
Traitement des données 3 (développement) À propos du format des données
Expérience de réglage des données Tensorflow
À propos du chemin japonais de pyminizip
Visualisation des données par préfecture
À propos de divers encodages de Python 3
À propos de tout numpy (2e)
Transformée de Fourier des données brutes
Estimation moyenne des données plafonnées
À propos du calcul des coûts de MeCab
À propos de la fraction approximative du rapport de circonférence
Une histoire de regroupement de données de séries chronologiques d'échange
À propos de la sortie HOG de Scikit-Image
À propos des fonctionnalités de Python
Prédiction de probabilité de données déséquilibrées
Développement d'une application WEB avec Django [Ajouter des données depuis l'écran de gestion]
À propos de Boxplot et Violinplot qui visualisent la variation des données indépendantes
À propos de la méthode d'apprentissage avec les données originales de CenterNet (Objects as Points)
À propos de la gestion de projet de deep learning (DNN)
À propos de la valeur de retour de pthread_mutex_init ()
À propos du type de base de Go
Conversion matricielle d'économie de mémoire des données de journal
À propos de la limite supérieure de threads-max
À propos des données de séries chronologiques et du surentraînement
À propos du croisement circulaire d'algorithmes génétiques
Différenciation des données de séries chronologiques (discrètes)
10 sélections d'extraction de données par pandas.DataFrame.query
Animation des géodonnées par geopandas
Recommandation d'analyse des données à l'aide de MessagePack
À propos du comportement de yield_per de SqlAlchemy
Analyse des séries chronologiques 3 Prétraitement des données des séries chronologiques
À propos de l'erreur d'importation de PyQt5.QtWidgets (Anaconda)
À propos de la taille des points dans matplotlib
À propos du traitement des demi-teintes couleur des images
À propos de la liste de base des bases de Python
Traitement des données 2 Analyse de divers formats de données
Essayez d'obtenir l'état de la surface de la route en utilisant de grandes données de gestion de la surface de la route