Suite

Utiliser Esri Geoservices REST comme backend pour le framework Web Python (Django ?)


J'aimerais savoir s'il est possible d'utiliser un framework Web Python existant tel que Django/GeoDjango comme interface pour travailler avec l'API REST Geoservices d'Esri ? J'envisage de développer un moteur de base de données qui atteint les points de terminaison REST dans JSON en tant que "tables" de base de données. Django Admin et Django Forms sont très bien conçus et je pense qu'ils pourraient servir d'excellentes interfaces pour ajouter, modifier et supprimer des tables spatiales et non spatiales, en particulier celles avec des relations.

EDIT : Comme j'y pense plus, il ne s'agit peut-être pas de changer le code source de Django, mais plutôt de concevoir l'application Web pour répondre aux besoins. Les modèles fournissent le stockage des liens de service de carte et les vues fournissent la fonctionnalité CRUD via des appels aux points de terminaison REST.


l'API REST Esri n'expose aucune fonction d'administration de table/couche, vous ne pouvez donc pas vraiment l'utiliser pour ajouter/modifier/supprimer des cartes ou un schéma de couche. Il permet cependant CRUD sur les fonctionnalités de chaque table.

donc, je pouvais voir une couche de caractéristiques individuelle via GeoDjango (en utilisant la couche de caractéristiques comme une "table") mais vous ne pourriez interroger et modifier que les caractéristiques de la table (pas son schéma)

pour aller de l'avant avec leur solution hébergée sur ArcGIS.com, il n'est toujours pas clair s'ils autoriseront l'accès REST à la fonctionnalité d'administration. Par exemple, la plupart des démos qu'ils ont montrées sur le mappage de fichiers de formes/csv par glisser-déposer ne créent pas réellement de FeatureLayers, elles sont ajoutées en tant que fonctionnalités individuelles au json de la carte (un peu comme une couche graphique plus fonctionnelle). Espérons que s'ils ajoutent une fonctionnalité d'administration de schéma, la spécification REST géospatiale sera également mise à jour.

bravo brian


C'est tout à fait possible, mais personne ne l'a encore fait. Arc2Earth utilise une implémentation indépendante de l'API REST Esri pour héberger sur Google App Engine. Et la mise en œuvre de l'API REST permet de faire des choses comme exposer des services de géotraitement et des couches d'entités pour analyse dans ArcGIS Explorer.


C'est plus dur qu'il n'y paraît. Les modèles Django sont, pour le moment, assez liés à un monde de bases de données SQL et l'administrateur est, à son tour, assez lié aux modèles Django.

Votre meilleur pari est probablement de regarder quelque chose comme Django-nonrel

http://www.allbuttonspressed.com/projects/django-nonrel


ArcGIS a sorti une API pour python en février 2017, je pense que c'est la voie maintenant (6 ans plus tard)

https://developers.arcgis.com/python/


Dernières contributions de MrG

Il y a quelque temps, j'ai utilisé la commande Viewshed2 qui utilise le traitement CUDA pour accélérer les calculs de visibilité à l'aide d'une solution géodésique complète. Pour exploiter la puissance de l'un de mes GPU, j'ai défini l'env CUDA_VISIBLE_DEVICES = 0

Cette variable env semble remplacer le GPU que vous indiquez dans l'interface graphique Pro, donc si vous avez plusieurs GPU sur votre système, n'oubliez pas de laisser le numéro de GPU dans Pro toujours à 0, et utilisez la variable CUDA_VISIBLE_DEVICES pour pointer vers le GPU qui vous voulez utiliser. Au moins, cela a résolu le problème pour moi.

Avant cela, j'ai vérifié deux fois que mes pilotes CUDA étaient correctement installés, que la bande passante avec mon GPU était saine, etc. C'est tellement complexe mais ça marche.


ArcGIS Online et ses services

La définition du SaaS suggère que tous les composants d'un système informatique sont fournis et gérés par le fournisseur de services cloud, ce qui permet au client de se concentrer uniquement sur l'utilisation ou la consommation des ressources. ArcGIS Online est un exemple de ce niveau de service. Comme vous l'avez observé dans la leçon 2, ArcGIS Online peut être utilisé comme canevas pour créer des mashups de carte Web, combinant des services provenant de plusieurs sources. Vous en ferez plus dans cette leçon. Mais vous irez également un peu plus loin et verrez comment ArcGIS Online peut être utilisé comme site d'hébergement pour vos propres services et applications Web.

Services d'hébergement sur ArcGIS Online

ArcGIS Online peut héberger des services Web de la même manière qu'ArcGIS Server peut héberger des services Web. Cela signifie que vous pouvez créer une carte dans ArcMap, choisissez Fichier > Partager en tant que > Service comme vous l'avez toujours fait, et choisissez d'héberger le service à l'aide de serveurs ArcGIS Online au lieu de votre propre serveur ArcGIS. En fait, il existe d'autres points d'entrée dans la publication d'un service qui ne nécessitent pas ArcMap, tels que le téléchargement d'un fichier CSV ou d'un fichier de formes et sa publication.

Étant donné qu'Esri commercialise ArcGIS Online auprès d'individus et de groupes qui ne sont peut-être pas familiers avec ArcGIS Server ou le jargon technique SIG, ils n'utilisent pas le terme services Web dans la documentation ArcGIS Online à la place, ils utilisent le terme « couches Web hébergées ». Néanmoins, ces couches Web hébergées utilisent la même spécification Esri GeoServices que celle utilisée par les services ArcGIS Server. Par conséquent, le code que vous écrivez pour interagir avec ces services ressemble beaucoup au code que vous écririez pour ArcGIS Server.

L'hébergement de couches Web dans ArcGIS Online coûte de l'argent. Vous achetez un bloc de « crédits » auprès d'Esri, et ces crédits sont consommés lorsque vous consommez diverses ressources dans ArcGIS Online, telles que le téléchargement de données et des services d'hébergement. La page Aperçu des crédits de service affiche le coût en crédits pour diverses actions.

Les types de couches Web qu'ArcGIS Online peut héberger sont limités par rapport à ArcGIS Server. À l'origine, ArcGIS Online ne pouvait héberger que des services de cartes tuilées (rasterisées) et des services d'entités. Récemment, des couches pour prendre en charge les vues 3D ont été ajoutées (couches de scène et couches d'élévation). Les couches de tuiles vectorielles sont également nouvelles et ne peuvent être publiées que via ArcGIS Pro.

Il existe plusieurs workflows que vous pouvez utiliser pour préparer les couches hébergées, en fonction de la quantité de logiciels SIG que vous avez installés sur site. Un bon exemple est avec les tuiles rastérisées. Vous pouvez éventuellement créer les tuiles de cache à l'aide d'ArcGIS Online (ce qui coûte des crédits) ou vous pouvez les créer vous-même dans ArcGIS Desktop et les télécharger en tant que "paquet de tuiles" sur ArcGIS Online où elles peuvent résider en tant que couche hébergée (ce qui économise des crédits mais prend plus de travail). Consultez l'article "Flux de travail pour la création et l'hébergement de tuiles de carte mises en cache dans ArcGIS" pour une comparaison des options de création de couches de tuiles rastérisées dans ArcGIS Online.

Workflows de collecte de données sur le terrain

Esri a développé un certain nombre d'applications pour importer des données dans ArcGIS Online et les afficher une fois qu'elles y sont. L'un des plus utilisés est Collector for ArcGIS, qui est utilisé pour la collecte de données sur le terrain, parfois dans des environnements déconnectés. Vous installez Collector sur les smartphones ou les tablettes depuis la boutique d'applications de l'appareil. Lorsque vous ouvrez Collector, vous vous connectez à une carte Web que vous avez enregistrée sur ArcGIS Online. Vous pouvez ensuite télécharger des données de fond de carte sur votre appareil afin de conserver le contexte géographique si ou lorsque vous vous déconnectez d'Internet lors de la collecte de données.

Lorsque vous sortez sur le terrain, Collector utilise le GPS de votre appareil pour vous placer sur la carte. Vous pouvez ensuite prendre des points de données à n'importe quel endroit et éventuellement fournir des attributs et/ou joindre une photo à partir de l'appareil photo de l'appareil. Lorsque vous revenez à un environnement connecté, vous pouvez « synchroniser » les données de l'appareil dans votre service ArcGIS Online, où elles sont ensuite disponibles pour d'autres applications clientes.

D'autres applications telles que Esri Operations Dashboard sont utilisées pour visualiser les données d'ArcGIS Online, qu'elles y aient été placées par Collector ou par d'autres moyens. Cette série de vidéos de la conférence fédérale des utilisateurs d'Esri montre comment Collector, ArcGIS Online et Operations Dashboard peuvent fonctionner ensemble en temps réel. Bien que cette démonstration ait été menée il y a plusieurs années au début de l'histoire de Collector, elle montre bien l'objectif fondamental de l'application et comment elle peut être utilisée pour l'acquisition de données sur le terrain.

Comme vous le verrez sur la liste "Up Next" de You Tube, il y a un certain nombre de vidéos de suivi dans cette série Operation Gold que vous pouvez continuer à regarder pour voir comment les données sont utilisées plus loin après leur collecte.

Une plateforme en tant que service

Lorsque vous avez consulté la page du coût du crédit, vous avez peut-être remarqué qu'ArcGIS Online propose des services de géocodage et de localisation (qui sont gratuits jusqu'à un certain point), ainsi que des services tels que le routage et l'analyse de réseau. Outre la possibilité de créer des mashups à partir de services tiers, ces fonctionnalités peuvent faire passer ArcGIS Online de la catégorie SaaS vers la catégorie PaaS, à mesure que le composant de données devient plus géré et géré par le client. Il s'agit peut-être d'une conversation purement philosophique plutôt que pratique, mais étant donné l'étendue des fonctionnalités fournies par ArcGIS Online, ses utilisateurs peuvent considérer qu'il relève du SaaS ou du PaaS en fonction de la manière spécifique dont le site est utilisé.

L'exécuter sur place

Esri a récemment produit une version d'ArcGIS Online qui peut être exécutée sur site, nommée Portal for ArcGIS. Cela s'adresse aux organisations déconnectées d'Internet (telles que la communauté du renseignement), aux organisations qui ont besoin d'un SLA (pourcentage de disponibilité) plus élevé que ce qu'ArcGIS Online peut offrir, ou aux organisations qui ne se sentent tout simplement pas encore à l'aise de passer au cloud.

Portal for ArcGIS a la même apparence qu'ArcGIS Online, mais utilise ArcGIS Server en arrière-plan pour héberger tous les services publiés par les utilisateurs du portail. L'administrateur de Portal for ArcGIS est chargé de s'assurer que le portail et le serveur disposent de suffisamment de matériel pour répondre aux demandes et aux téléchargements des utilisateurs du portail. Vous en apprendrez plus sur Portal for ArcGIS dans la leçon 9.

Explorer le site Web ArcGIS.com

Le site Web ArcGIS.com fournit une vue dans ArcGIS Online. Parfois, vous pouvez entendre les termes ArcGIS.com et ArcGIS Online utilisés de manière interchangeable, mais ArcGIS Online est accessible via d'autres clients Esri tels qu'ArcMap et par programmation via n'importe quel client utilisant l'API REST ArcGIS.

Visitez le site Web ArcGIS.com en suivant les étapes ci-dessous.

  1. Ouvrez votre navigateur Web à l'URL suivante : arcgis.com et connectez-vous à l'aide du compte Penn State Enterprise que vous avez utilisé dans la leçon 2. ArcGIS Online est une ressource basée sur le cloud permettant d'afficher des cartes existantes, de créer de nouveaux produits cartographiques et de partager des cartes avec d'autres. . Dans ArcGIS Online, les services de données sont présentés sous leur forme cartographique et le processus de création de nouvelles cartes et de mise à jour d'entités est effectué dans une interface cartographique.
    Les onglets en haut de la page d'accueil d'ArcGIS Online correspondent aux fonctionnalités principales du site :
    • Galerie - voir les cartes existantes
    • Carte - créer de nouveaux produits cartographiques
    • Scène - créer de nouveaux produits cartographiques 3D
    • Notebook - analyser des données avec Python
    • Groupes - partagez vos cartes avec des utilisateurs particuliers ou le public (affiché lorsque vous êtes connecté)
    • Contenu - gérer le contenu de la carte que vous avez créé (affiché lorsque vous êtes connecté)
    • Organisation - gérer les utilisateurs et les autres paramètres de l'organisation à laquelle appartient votre compte (affiché lorsque vous êtes connecté)
  2. Parcourez quelques cartes en cliquant Contenu et en cliquant sur le Atlas vivant languette. Choisissez l'une des catégories sur la gauche et cliquez sur certaines des vignettes de carte répertoriées sur la page Galerie. Vous pouvez ouvrir ici deux principaux types d'éléments : les cartes et les applications. Il s'agit de produits créés par les utilisateurs d'ArcGIS Online et publiés pour un accès public. Pensez à un carte web comme votre canevas de travail pour assembler un ensemble de services Web dans une vue présentable qui peut ensuite être extraite dans de nombreuses API ou plates-formes différentes. UNE application de cartographie Web, en revanche, est une vue finale créée avec une seule API et hébergée pour être utilisée par les utilisateurs finaux uniquement. Nous allons maintenant nous concentrer sur les cartes Web, mais dans la section suivante de la leçon, vous aurez la possibilité de créer à la fois une carte Web et une application de cartographie Web terminée.
  3. Choisissez une carte Web (essayez de rechercher Ouragans et cyclones tropicaux), et cliquez sur son titre hypertexte pour ouvrir le Aperçu page. Veuillez noter le Couches section vers le bas de la page. Cette section répertorie la source de chaque couche de données incluse dans la carte publiée. Vous devez observer que chaque couche spécifie une URL, qui correspond au serveur de cartes Internet à partir duquel ce service de données particulier est publié. L'URL doit indiquer l'hôte (par exemple, services.arcgisonline.com) et le type (ArcGIS Server, WMS) du service.
  4. Maintenant, cliquez sur le Ouvert (ou alors Ouvrir dans Map Viewer) sur la carte Web et ouvrez-la dans la visionneuse de carte ArcGIS.com. Utilisez les onglets du menu de gauche pour explorer la liste des couches et la légende.

Réfléchissez à la manière dont l'emplacement physique des données source, la manière dont vous les utilisez et la mesure dans laquelle tout cela est transparent pour vous correspond au modèle SaaS du cloud computing. Les détails techniques sous-jacents de comment et où les données sont publiées vous ont-ils été suffisamment cachés ? Vous avez vu que vous pouvez découvrir certaines de ces informations, via l'annuaire des services, mais il n'est pas toujours nécessaire de les connaître, lorsque vous utilisez le client fourni par ArcGIS Online.

Ce site est un exemple de ressource SaaS car tous les composants de l'infrastructure sont gérés par le cloud, du matériel et du système d'exploitation sous-jacents aux logiciels et aux données. En fait, les cartes créées par l'utilisateur dans la galerie ArcGIS Online sont principalement générées en compilant et en superposant des couches cartographiques existantes déjà publiées sur ArcGIS Online ou d'autres serveurs de cartographie. Il est possible de créer de nouvelles données dans cet environnement en dessinant des entités sous forme de graphiques (Ajouter > Ajouter des notes de carte). Mais c'est la mesure dans laquelle les données peuvent être gérées directement, le cloud ArcGIS Online gère les détails sous-jacents du stockage des données.


Utiliser Esri Geoservices REST comme backend pour le framework web Python (Django ?) - Systèmes d'Information Géographique

Ce projet est en cours de migration vers GitLab : https://gitlab.com/rosarior/awesome-django. Ce référentiel sera supprimé une fois tous les tickets fermés.

Une liste organisée d'applications, de projets et de ressources Django géniaux. Inspiré et basé sur awesome-python.

Des packages qui étendent l'interface d'administration, en ajoutant ou en améliorant des fonctionnalités.

    - Un nouveau style pour l'administrateur Django. - Responsive Skin pour Django Admin - Un thème d'administration Django utilisant Twitter Bootstrap. - Collection de champs d'administration et de décorateurs. - L'interface d'administration ultime, basée sur un thème plat moderne, elle vous permet de personnaliser le titre, le logo et les couleurs de l'administrateur par l'administrateur lui-même. - Une collection d'extensions/d'outils pour l'interface d'administration par défaut de Django - Une réécriture extensible et adaptable de django.contrib.admin - Un thème plat pour l'interface d'administration de Django. Moderne, frais, simple. - Un tableau de bord django-admin-tools amélioré pour les projets Django - Un skin jazzy pour l'interface d'administration Django. - Permet aux super-utilisateurs de détourner (= se connecter en tant que) et de travailler pour le compte d'un autre utilisateur. - Interface d'administration de modèle moderne avec des fonctionnalités améliorées. Conception matérielle pour Django Forms et Admin. Piloté par modèle. Une application Django pour ajouter des outils d'objet pour les modèles dans l'interface d'administration d'administration - Thème moderne pour Django. - Look and feel WordPress pour le panneau d'administration de Django. - Le remplacement instantané de l'administrateur Django est livré avec de nombreux avantages, entièrement extensible avec la prise en charge des plugins, une jolie interface utilisateur basée sur Twitter Bootstrap - Un site Web d'administration pour Django

Packages qui font de l'analyse Web ou intègrent des services d'analyse Web.

Packages qui aident à gérer les actifs statiques d'un projet.

    - Compresse le javascript ou CSS lié et en ligne dans un seul fichier mis en cache. - Compile et concatène les ressources JavaScript et CSS. - Minificateur HTML pour Python avec prise en charge complète de HTML 5 et Django. - Packaging d'actifs pour Django. - Django SystemJS apporte le Javascript de demain à Django, aujourd'hui. (Intégration JSPM dans Django) - Intégration transparente du webpack pour Django. - Liaisons Python pour webpack avec intégration django.

Packages qui améliorent ou étendent les méthodes d'authentification de Django.

    - Ensemble intégré d'applications Django traitant de l'authentification, de l'enregistrement, de la gestion des comptes ainsi que de l'authentification des comptes tiers (sociaux). - Comptes multi-utilisateurs pour les projets Django. - Un framework enfichable pour ajouter une authentification à deux facteurs à Django à l'aide de mots de passe à usage unique. - Application simple d'enregistrement d'utilisateurs pour Django, conçue pour rendre les inscriptions d'utilisateurs aussi simples que possible. - Un ensemble de points de terminaison d'API REST pour gérer les tâches d'enregistrement et d'authentification des utilisateurs. - Authentification conviviale à deux facteurs. - Les comptes pour Django rendus magnifiquement simples - Python Social Auth est un mécanisme d'authentification/enregistrement social facile à configurer avec prise en charge de plusieurs frameworks et fournisseurs d'authentification.

Packages liés à l'infrastructure d'autorisation et aux autorisations.

    - Implémentation des permissions par objet en tant que backend d'autorisation. - Des goodies OAuth2 pour les Djangonauts ! - Fournir un accès OAuth2 à votre application - Couche de modération d'objets, mixin pour les modèles qui vous permet de modérer plusieurs types de contenu. Une bibliothèque d'autorisations améliorée qui permet à un système d'autorisation basé sur la logique pour gérer les autorisations complexes dans Django - Une application minuscule mais puissante fournissant des autorisations au niveau objet à Django, sans nécessiter de base de données. À la base, il s'agit d'un cadre générique pour la construction de systèmes basés sur des règles, similaire aux arbres de décision. Il peut également être utilisé comme une bibliothèque autonome dans d'autres contextes et frameworks.

Packages pour créer et gérer une application de blog.

    - Application simple mais puissante et vraiment extensible pour gérer un blog au sein de votre site Web Django. - Une application de blog Django implémentée dans Wagtail.

Forfaits liés à smart un nouveau démarrage de projet.

    - Un utilitaire en ligne de commande qui crée des projets à partir d'emporte-pièces (modèles de projet). - Un passe-partout pour les applications Web Django, contenant diverses méthodes d'authentification sociale et plusieurs exemples d'API populaires. - Un squelette de projet Django moderne et à la pointe de la technologie.

Paquets qui aident à la mise en cache.

    - Met en cache vos requêtes Django ORM et les invalide automatiquement. - Mise en cache et invalidation automatique pour les modèles Django via l'ORM. - Un cache ORM élégant avec invalidation automatique granulaire basée sur les événements. - Une implémentation de la technique de mémorisation pour Django. - Un mixin de gestionnaire de cache qui fournit une mise en cache d'objets pour l'ORM. - Un backend de cache Redis pour Django. - Johnny Cache est un framework de mise en cache pour les applications Django.

Des packages qui aident à maintenir la compatibilité des applications réutilisables entre les différentes versions de Django.

    - Couche de compatibilité pour et en amont pour les versions de Django officiellement prises en charge. - Vérifiez la compatibilité Django de votre code.

Des packages qui créent des tableaux de bord d'informations pour visualiser les données.

    - un framework d'application de tableau de bord personnalisable et modulaire pour Django pour visualiser des données intéressantes sur votre projet. Inspiré du cadre de tableau de bord exceptionnellement beau Dashing.

Des packages qui facilitent le travail avec de gros volumes de données.

    - Sert vos cadres de données Pandas via le framework REST Django pour une utilisation dans les visualisations côté client (c'est-à-dire d3.js) et l'analyse hors ligne (par exemple, Excel).

Packages qui ajoutent la prise en charge des bases de données tierces ou des fonctionnalités spécifiques aux bases de données.

    - Utilisez les URL de base de données dans votre application Django. - Extensions à Django pour une utilisation avec MySQL/MariaDB. - Comptes PostgreSQL rapides / flous pour Django. - Postgres Connection Pooling pour Django, optimisé par SQLAlchemy.

Des packages qui aident à traquer les bogues.

    - Un ensemble configurable de panneaux qui affichent diverses informations de débogage sur la demande/réponse actuelle. - Un remplacement pour la commande runserver intégrée de Django. - Middleware qui imprime le nombre de requêtes de base de données sur la console runserver. - Profilage fluide et fluide pour Django - Détection automatique du problème des requêtes n+1 dans Django (et autres ORM) - Une plate-forme moderne de journalisation des erreurs et d'agrégation.

Des packages qui aident à gérer l'envoi d'e-mails.

    - Un backend de messagerie Django qui utilise une tâche de céleri pour envoyer l'e-mail. - Module Django pour envoyer facilement des e-mails/sms/push/tts à l'aide de modèles django stockés dans la base de données et gérés via l'administrateur Django. - Gestion basée sur Django Admin pour les campagnes par e-mail goutte à goutte - Divers utilitaires de messagerie : cryptage PGP, modèles en plusieurs parties, backend de test du navigateur Web. - Un backend de messagerie Django pour Mailgun. - Une application simple pour envoyer et gérer vos e-mails dans Django, prend en charge les modèles et peut être facilement intégrée aux files d'attente de tâches. - Un backend de messagerie Django pour le service de messagerie simple d'Amazon. - Un email django soutenu pour le démon Spoolgore. - Module Django pour envoyer facilement des e-mails modélisés en utilisant des modèles django, ou en utilisant un fournisseur de messagerie transactionnelle (mailchimp, silverpop, etc.) - django-mailer2 + django-mailviews avec quelques extras. - Un middleware de messagerie Django simple et non gênant. - Backend de messagerie et nouvelle classe de message pour le service de messagerie transactionnelle Mandrill de MailChimp.

Packages qui étendent les fonctionnalités du type de champ existant ou ajoutent de nouveaux types de champ.

    - Permet le téléchargement, la gestion et la conversion de fichiers audio vers différents formats audio (mp3, wav & ogg). - Une extension BitField pour les modèles Django. - Fournit des choix de pays pour les formulaires, les icônes de drapeau et un CountryField. - Champ Django personnalisé pour l'utilisation d'énumérations de constantes nommées. - Un package pour gérer les images dans Django. - Traitement d'image automatisé pour Django. - JSONField pour les modèles Django. - Champ de localisation et widget intégrés à Google Maps. - Modèle d'adresse MAC et champs de formulaire pour Django. - Une bibliothèque Django qui s'interface avec python-phonenumbers pour valider, joliment imprimer et convertir les numéros de téléphone. - Un champ d'objet décapé pour Django - Un widget à choix multiples meilleur et plus rapide avec des suggestions. - Un UUIDField pour Django. - Un remplacement instantané pour ImageField de Django qui fournit une interface flexible, intuitive et facilement extensible pour créer rapidement de nouvelles images à partir de celle affectée au terrain.

Packages qui aident à transférer des fichiers entre les projets et les utilisateurs.

    - Servir des fichiers avec Django. - Il s'agit d'un wrapper autour des méthodes spécifiques au serveur Web pour l'envoi de fichiers aux clients Web.

Packages qui étendent les fonctionnalités des formulaires ou ajoutent de nouveaux types de formulaires.

    - Le but de django-autocomplete-light est d'activer rapidement et correctement la saisie semi-automatique dans un projet Django. - Twitter Bootstrap for Django Form - Utilisez Bootstrap dans vos modèles Django, à la manière de Django. - La meilleure façon d'avoir des formulaires DRY Django. L'application fournit une balise et un filtre qui vous permettent de rendre rapidement les formulaires au format div tout en offrant une énorme capacité de configuration et de contrôle du HTML rendu. - django-floppyforms est une application qui vous donne un contrôle total sur la sortie du rendu des formulaires. L'API et les fonctionnalités des formulaires sont exactement les mêmes que celles de Django, la principale différence est que les champs et les widgets sont rendus dans des modèles au lieu d'utiliser une interpolation de chaîne, vous donnant un contrôle total sur la sortie à l'aide des modèles Django.

Des packages qui facilitent le travail sur les projets de système d'information géographique.

    - Un champ de modèle pouvant contenir une géoposition (latitude/longitude) et le widget d'administration/formulaire correspondant. - Champ de localisation et widget intégrés à Google Maps. - Extensions de géodonnées pour Django REST Framework. - Add-ons géographiques pour Django Rest Framework.

Paquets qui aident à manipuler, modifier ou convertir des images.

    - application d'aide pour recadrer facilement et de manière non destructive des images arbitrairement grandes dans l'administration et le frontend. - Un remplacement instantané pour ImageField de Django qui fournit une interface flexible, intuitive et facilement extensible pour créer rapidement de nouvelles images à partir de celle affectée au terrain.

Packages qui chargent, importent ou exportent des données à partir d'un projet.

Packages qui aident à migrer la base de données lorsqu'il y a des mises à jour de schéma.

Des packages qui vous aident à prendre en charge les mobiles iOS, Android et autres.

    - Une application Django minimale qui implémente des modèles d'appareils pouvant envoyer des messages via APNS et GCM. - Application Django qui fournit une fonctionnalité de notifications push avec du céleri. L'objectif principal de cette application est de vous aider à envoyer des notifications push à vos utilisateurs à grande échelle. Si vous avez beaucoup de clés d'appareil enregistrées, django-pushy divisera vos clés en groupes plus petits qui s'exécuteront en parallèle, ce qui accélérera le processus d'envoi de notifications.

Des packages qui étendent les fonctionnalités des modèles ou ajoutent de nouvelles classes de modèles.

    - Agrégats conditionnels pour les requêtes Django, tout comme les fameux SumIf et CountIf dans Excel. - Aides Django spécifiques au pays, anciennement renommées de contrib. - Mixins et utilitaires du modèle Django. - Utilitaires pour implémenter un arbre de parcours de pré-commande modifié dans Django. -Structures de données arborescentes alternatives pour Django (fournit 3 méthodes différentes pour stocker des données hiérarchiques, y compris MPTT )

Packages qui fournissent l'intégration du fournisseur de traitement des paiements.

    - Django + Stripe Made Easy. - Une application Django qui fournit des aides pour plusieurs backends de paiement enfichables. - Ce package permet l'intégration avec la passerelle de paiement Adyen. Il est conçu pour fonctionner de manière transparente avec le framework e-commerce django-oscar mais peut être utilisé sans Oscar. - Ce package permet l'intégration avec la passerelle de paiement, PaymentExpress en utilisant leur API PX POST. Il est conçu pour fonctionner de manière transparente avec le framework e-commerce django-oscar mais peut être utilisé sans lui. - Intégration PayPal pour Django-oscar. Peut également être utilisé sans Oscar. - Une application Django enfichable pour intégrer PayPal Payments Standard ou Payments Pro. - Bibliothèque Django pour simplifier le traitement des paiements avec pin. - Des formulaires, des widgets, des balises de modèles et des exemples qui facilitent Stripe + Django.

Packages pour la création de rapports

    - Rapports Django intégrés avec highcharts. - Une interface graphique pour Django ORM. Créez des requêtes personnalisées et affichez les résultats. Cible les administrateurs système et les utilisateurs finaux capables qui pourraient ne pas être en mesure de programmer.

Packages pour le développement d'API RESTful.

    - Une approche minimaliste de la sérialisation des objets, des vues RESTful et des vues RPC. - Cette application rend extrêmement facile la création d'applications SPA (Single Page App) ou mobiles propulsées par Django exposant toutes les fonctionnalités liées à l'enregistrement et à l'authentification en tant que CBV (Class Base View) et REST (JSON). - Une boîte à outils puissante et flexible qui facilite la création d'API Web. - Versions localisées de certains sérialiseurs à utiliser avec Django Rest Framework. - Générateur de documentation Swagger pour Django REST Framework - Documenter les API Web créées avec Django REST Framework - Création de délicieuses API pour les applications Django depuis 2010. - Un mini-framework REST léger pour Python

Packages qui fournissent des capacités de recherche aux projets.

    - Recherche modulaire pour Django. - Plugin de recherche en texte intégral multi-modèle rapide. - Intégration de la recherche en texte intégral PostgreSQL avec django orm.

Des packages qui améliorent la sécurité d'un projet.

    - Un faux écran de connexion d'administrateur Django pour informer les administrateurs d'une tentative d'accès non autorisé. - est un moyen très simple pour vous de garder une trace des tentatives de connexion infructueuses, à la fois pour l'administrateur Django et pour le reste de votre site. - Atténuation BREACH pour les applications Django. - Invalider toutes les sessions actives après changement de mot de passe (pas nécessaire pour Django 1.7+). - Vous aider à vous rappeler de faire les petites choses stupides pour améliorer la sécurité de votre site Django. - Authentification sécurisée par TOTP, SMS, Codes & Question. Protection de connexion avec interdiction par IP et captcha. - Une collection de modèles, vues, middlewares et formulaires pour aider à sécuriser un projet Django. - Forcez SSL sur votre site Django. - Stronghold est un middleware par défaut de toutes vos vues pour vous connecter. - Le mode Sudo est une couche de sécurité supplémentaire pour vos pages les plus sensibles. Il s'agit d'une implémentation du mode Sudo de GitHub pour Django.

Des packages qui aident à améliorer le référencement (Search Engine Optimization) des projets.

    - une application enfichable pour permettre aux développeurs Django d'ajouter rapidement des balises méta et des propriétés OpenGraph, Twitter et Google Plus à leurs réponses HTML. - Une application Django pour gérer les fichiers robots.txt suivant le protocole d'exclusion des robots. - Fournit un ensemble d'outils pour gérer les métadonnées d'optimisation des moteurs de recherche (SEO) pour les sites Django.

Des packages qui aident à gérer la configurabilité des projets.

    - Une aide pour organiser les paramètres du projet Django en s'appuyant sur des modèles de programmation bien établis. - Une application Django pour stocker des paramètres dynamiques dans des backends enfichables (backend de modèle Redis et Django intégrés) avec une intégration avec l'application d'administration Django. - Séparation stricte de la configuration du code. - Vous permet d'utiliser des variables d'environnement inspirées de 12 facteurs pour configurer votre application Django. - Organisez les paramètres Django dans plusieurs fichiers et répertoires. Remplacez et modifiez facilement les paramètres. Utilisez des caractères génériques et des fichiers de paramètres facultatifs.

Packages qui étendent les fonctionnalités du backend de stockage existant ou fournissent de nouveaux backends de stockage.

    - Paramètres globaux et d'instance dynamiques pour votre projet Django. - Cette application vous permet d'enregistrer facilement des fichiers multimédias et statiques dans le stockage cloud Selectel. - django-storages est une collection de backends de stockage personnalisés pour Django. - Fournit un proxy pour les backends de stockage Django qui vous permet de télécharger des fichiers localement et éventuellement de les servir à distance. - Backend de stockage Django qui stocke les fichiers dans un stockage WebDAV personnalisé.

Des packages qui facilitent le travail avec les files d'attente de tâches/d'arrière-plan.

    - Intégration de céleri pour Django. (plus requis pour Celery 3.1 et versions ultérieures) - Une file d'attente de tâches multitraitement native pour Django. - Le moyen le plus simple de surveiller et d'utiliser RQ dans vos projets Django. - Une petite file d'attente de tâches multi-thread pour python.

Packages qui aident à tester le code ou à générer des données de test.

    - Intégration de Behave BDD pour Django - TestRunner pour le module Behave BDD. - Une bibliothèque complète pour créer des instances de modèles dynamiques à des fins de test. - Fake-factory pour générer des données de test. - Intégration continue plug and play avec django et jenkins. - Coureur d'essai utilisant le nez. - Prise en charge des tests de sélénium. - Testez des sites Django entiers. - Localisez vos tests les plus lents. - Des modules complémentaires utiles au TestCase par défaut de Django qui réduisent considérablement le code passe-partout - Un remplacement des appareils de test pour Python - Un cadre de test d'intégration de haut niveau pour Django. - Fichier de terrain pour la laitue dans les projets django
  • [mixer] (https://github.com/klen/mixer) - Une application pour générer des instances de modèles Django ou SQLAlchemy. Génération de données de test rapide et pratique.
  • [mock-django] (https://github.com/dcramer/mock-django) - Une bibliothèque simple pour se moquer de certains comportements de Django, comme l'ORM. - Des appareils intelligents pour de meilleurs tests. - Lanceur de test utilisant py.test - Framework de test pour les applications Web.

Packages permettant de générer des vignettes.

    - Vignettes et utilitaires d'images pour Django. - Un remplacement instantané pour ImageField de Django qui fournit une interface flexible, intuitive et facilement extensible pour créer rapidement de nouvelles images à partir de celle affectée au terrain. - Vignettes faciles pour Django. - Vignettes pour Django.

Les packages aident à la tâche de traduction des projets.

    - Traductions indolore dans Django, en utilisant l'ORM régulier. S'intègre facilement dans les projets et applications existants. Facilement convertible à partir de django-multilingual-ng. - Une tentative de rendre les traductions de modèles django infructueuses et sans douleur d'intégration dans votre application. - Traduire le contenu dynamique des modèles Django existants dans un nombre arbitraire de langues sans avoir à modifier les classes du modèle d'origine. - Des traductions simples de modèles Django sans hacks désagréables - Rosetta est une application Django qui facilite le processus de traduction de vos projets Django.

Packages qui améliorent ou fournissent de nouvelles classes de vue.

    - Les vues génériques basées sur les classes de Django sont géniales, ajoutons-en plus. - Vues basées sur les classes magnifiquement simples.
    - Let AngularJS play well with Django. - Easy way to use bower with your Django project. - Javascript url handling for Django that doesn't hurt. - A reusable Django app that provides better integration and tools for Angular.js.

Packages that makes text editing awesome.

    - Django admin CKEditor integration. - Summernote is a simple WYSIWYG editor. django-summernote allows you to embed Summernote into Django very handy. Support admin mixins and widgets. - TinyMCE integration for Django. - A Django application for making Django textareas rich text editors. Certainly as a template tag and possibly as a form widget. - A lightweight wysiwyg editor for Django.
    A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models. An extensible wiki app for Django with a Git backend.

Packages that do process, procedure and/or business tasks management.

    - django-flows keeps state and position in complicated flows of logic, allowing optional branches and complicated paths through a series of individual user actions. - Django friendly finite state machine support. - Django state machine and workflow library provides on the fly changes. - State machine for django models. - Reusable workflow library for Django. - django-workflows provides a generic workflow engine for Django. - Library to plug xworkflows into django models.
    - Easy to use active URL highlighting for django - Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams. - Collection of useful actions to use with django.contrib.admin.ModelAdmin and/or django.contrib.admin.AdminSite - Automatic admin users for Django projects. - Reusable, generic mixins for Django. - A reusable app to manage and display a calendar in your templates. - A cart app for your django site, an updated fork of django-cart - Django app for handling the server headers required for Cross-Origin Resource Sharing (CORS). - App that provides tags to fetch Google DFP ads. - Creating Scrapy scrapers via the Django admin interface. - This is a repository for collecting global custom management extensions for the Django Framework. - A generic system for filtering Django QuerySets based on user selections. - Django app to manage following and bi-directional friendships. - Essential Gravatar support for Django. Features helper methods, templatetags and a full test suite! - A boilerplate for Django web applications, containing various social authentication methods and several popular API examples. - A Django application to retrieve user's IP address. - an easy and simple Django template tag and tool to embed video and get thumbnails from video providers. - A Django reusable application for end-to-end markup handling. - App for monitoring management commands on Django.. - Circular template inheritance for Django. - https://github.com/ericflo/django-pagination. - Django EL(Endless) Pagination can be used to provide Twitter-style or Digg-style pagination, with optional Ajax support. - This is a configurable quiz app for Django. - Django reCAPTCHA form field/widget integration app. - Django Smuggler is a pluggable application for Django Web Framework that helps you to import/export fixtures via the automatically-generated administration interface. - Helps working with singletons - things like global settings that you want to edit from the admin site. - Easily share data via SQL queries, right from Django - Store Django messages on your project's backend. - provides a decorator to rate-limit views. Limiting can be based on IP address or a field in the request--either a GET or POST variable. - a slugify application that guarantees Uniqueness and handles Unicode. - django-watchman exposes a status endpoint for your backing services like databases, caches, etc. - Websockets for Django applications using Redis as message queue. - Collection of Ansible playbooks to quickly start your Django Application - A small library for extracting rich content from urls. - a collection of tools which make your life easier if you are building a web application using Django.

Outstanding Django projects.

    - The easy-to-use and developer-friendly CMS. - Django Fiber, a simple, user-friendly CMS for all your Django projects - A Django-based CMS with a focus on extensibility and concise code. - A content management platform built using the Django framework. - A new Django content management system. - A new Django content management system built on top of FeinCMS and OpenStack Horizon.
    - Open source, Django based DMS (document management system) with custom metadata indexing, file serving integration, OCR capabilities, document versioning and electronic signature verification.
    - Ecommerce for Django/Mezzanine. - Domain-driven e-commerce for Django. - Lighting Fas Shop is Ecommerce made with Django. - An e-commerce storefront for Python and Django. - Satchless brings e-commerce and Python together. - Satchmo is an eCommerce framework creatde in Django which allows you to develop unique and robust online stores.
    - Django Packages is a directory of reusable apps, sites, tools, and more for your Django projects. - Full stack SaltStack configuration for Django with the help of Vagrant. - Reddit / Hacker News clone for Django/Mezzanine. - Beautiful CRM/ERP for small business.

Where to discover new Django apps and projects.

    (1.2) (< 1.7) (1.5) (video) (1.7) - Deploying fast, scalable Django sites. (1.7) - Using REST, WebSockets, and Backbone with Django (1.5) (1.7) - A best practice book for making Python and Django as fun as ice cream.
    - A fun and engaging tutorial showing how to build a blog using Django and deploy it to Heroku. - A reusable set of slides to educate more people about Django. - Django Packages is a directory of reusable apps, sites, tools, and more for your Django projects. - Django Sites is a showcase of websites powered by Django. - contains explanations for Django's philosophy and its components along with links to other resources and tutorials.
    - the new meeting of the Django community of Florence. - the Italian Django community conference. An opportunity to meet djangonauts from all over Italy and abroad. - is a Django/Python non-profit community event, organised and run entirely by volunteers. The conference is Django-focused, but all aspects of Python fall within its remit. - is an exciting new Django conference for experienced Django developers. Come and learn about the internals of Django, and help to shape its future. - is the annual largest European-based Django conference that is usually held in late spring. - is the largest North American Django conference generally held the first week in September each year.

Additional sources of information about django features.

    - Detailed descriptions, with full methods and attributes, for each of Django's class-based generic views. - Detailed descriptions, with full methods and attributes, for each of Django REST Framework's class-based views and serializers.
    - One of the best collection of Django Videos and all the projects are written in Django. - Django videos from basics to advanced. Covering 3rd party apps to core Django compontents. - Must-watch videos about Django (or about Python as applied to Django) - The video series will teach you Django in one month

Non Django projects that make it easier to work with Django.

    - Run manage.py commands from anywhere. Finds closest to current path manage.py file and runs commands against it. - A toolkit for running standalone Django applications. It provides you with tools to create a CLI runner, manage settings, and the ability to bootstrap the process.

Just fork and send a pull request with your awesome Django apps, projects or resources. By contributing you agree to abide by the Code of Merit.


What web GIS stack should I use for my app?

I know there is a lot of information about GIS stacks for web app development all over the internet. Nevertheless, I just wanted to check if you have any recommendations about which technology I should use when building web app, based on my needs and current skills. As the spatial side of it will be quite simple, I am not sure if this would really classify as GIS web app, but as I work in the field as a GIS technician I like to think it does- and will hopefully be a first step towards GIS and/or web development career.

Anyway, it will be a map-based web app with some of the components being:

map with preloaded point data

ability for users to permanently add points/markers on the map and evaluate other entries (rate 1-5, add comments etc.),

ability for users to do simple spatial query/search (eg. show all accomodation in 10km radius, find nearest weather station and display the weather on this location. )

I've put together this extremely simple GIS-like web app recently, as my first ever programming project so I do have some understanding of Leaflet and front end, and some very basic understanding of Postgis.

For the project I'm about to build I was thinking of Flask backend, Leaflet for mapping, PostGIS database and Apache/Nginx(?) sever. I wouldn't use GeoServer I guess, as I don't think it is really necessary for my project. If I understand correctly I would be able to connect to Postgis through Flask's GeoAlchemy? Does that sound about right?


Integrating geo web services for a user driven exploratory analysis ☆

In data exploration, several online data sources may need to be dynamically aggregated or summarised over spatial region, time interval, or set of attributes. With respect to thematic data, web services are mainly used to present results leading to a supplier driven service model limiting the exploration of the data. In this paper we propose a user need driven service model based on geo web processing services. The aim of the framework is to provide a method for the scalable and interactive access to various geographic data sources on the web. The architecture combines a data query, processing technique and visualisation methodology to rapidly integrate and visually summarise properties of a dataset. We illustrate the environment on a health related use case that derives Age Standardised Rate – a dynamic index that needs integration of the existing interoperable web services of demographic data in conjunction with standalone non-spatial secure database servers used in health research. Although the example is specific to the health field, the architecture and the proposed approach are relevant and applicable to other fields that require integration and visualisation of geo datasets from various web services and thus, we believe is generic in its approach.


Electronic Design Automation

45. Ciranova
Ciranova is an Electronics Design Automation (EDA) company that provides automated integrated circuit (IC) layout tools. The Ciranova RuleWise API provides a high-level programming interface designed specifically for building deep-submicron cell generators. It is accessed as a Python extension package.

46. Productivity Design Tools
Productivity Design Tools (PDTi) is an Electronics Design Automation (EDA) company providing the most extensible Electronic System Level (ESL) tools for managing IP specifications, and automating code and documentation generation. Soft IP generators built upon PDTi's SpectaGen Framework make significant efficiency improvements for all aspects of system and chip development. PDTi was founded to address needs identified during its founder's time as a chip developer. Unlike the typical in-house solution or the competitors' offerings, SpectaGen is flexible enough for any environment and is designed to be extended based on customer-specific knowledge and design experience using object-oriented Python and XML.
PDTi's SpectaReg product is an eXtensible Memory-Mapped Register generator.


(Geo)Django vs. Javascript

Is it more worthwhile for a GIS user to learn Django (and GeoDjango) or Javascript (I know a similar question was explored 2 years ago)? I'm more excited about learning Django (since I'm more familiar with Python) but it seems there are more Javascript type GIS jobs out there.

It seems GeoDjango also does a good job integrating SQL, so I feel like building a project with GeoDjango would be a good learning opportunity, but I don't want to sink a bunch of time into it if it's not worthwhile. Any thoughts?

You can use them as complementary things. Geodjango is great a great way to serve your gis data as JSON data Using a restful API. JavaScript can then be used to consume and update a client side map with that data.

Airbnb for example would serve the background data as a json which is then shown on a map using JavaScript to update when moving and initialized.

Both are useful, JavaScript is easier though.

Also, Airbnb probably uses something like typescript and is transpliled to JavaScript, but that’s more complicated.

As several comments have already indicated: it is not a versus scenario. In modern web and GIS development you need to know javascript. Make sure you only learn ES6 plus syntax and master async await to avoid callback coding. Knowing django and python is of course another asset but then I would generalize it to learning python. I personally use nodejs on the server, appcelerator for mobile and React/mapbox js for the web frontend. I would advise building a small backend twice, using nodejs and django. Then build a webmap using mapbox gl js and possibly React. In addition, use linux and play with command line tools. Nodejs also plays well with SQL and there are many libraries to use postgis/postgresql. So also learn posgres/postgis as that is your most typical GIS SQL system. Bonne chance!


Openwisp-wifi-login-pages

Configurable captive page for public/private WiFi services providing login, sign up, social login, SMS verification, change password, reset password, change phone number and more.

Openwisp-ipam

IP address space administration module of OpenWISP

Openwisp-radius

Administration web interface and REST API for freeradius 3 build in django & python. Supports captive portal authentication, WPA Enerprise (802.1x), freeradius rlm_rest, social login, Hotspot 2.0 / 802.11u, importing users from CSV, registration of new users and more.

Openwisp-monitoring

Network monitoring system written in Python and Django, designed to be extensible, programmable, scalable and easy to use by end users: once the system is configured, monitoring checks, alerts and metric collection happens automatically.

Ansible-wireguard-openwisp

Openwisp-controller

Network and WiFi controller: provisioning, configuration management and updates, (pull via openwisp-config or push via SSH), x509 PKI management and more. Mainly OpenWRT, but designed to work also on other systems.

Netengine

Python abstraction layer for extracting information from network devices.

Openwisp-users

Implementation of user management and multi-tenancy for OpenWISP

Openwrt-openwisp-monitoring

OpenWRT monitoring scripts for openwisp-monitoring

Openwisp-notifications

Notifications module of OpenWISP

Docker-openwisp

OpenWISP in docker (in-alpha). For production checkout ansible-openwisp2.

Openwisp-utils

Python and Django utilities shared between different openwisp modules

Openwisp-firmware-upgrader

Firmware upgrade solution for OpenWRT with possibility to add support for other embedded OSes. Provides features like automatic retry for network failures, mass upgrades, REST API and more.

Openwisp-config

OpenWRT configuration agent for OpenWISP Controller

Ansible-openwisp2

Ansible role that installs and upgrades OpenWISP.

Ansible-openwisp2-imagegenerator

Automatically build several openwisp2 firmware images for different organizations while keeping track of their differences

Django-x509

Reusable django app implementing x509 PKI certificates management

Django-sendsms

A simple API to send SMS messages. It is modeled after the django email api.

Netjsongraph.js

NetJSON NetworkGraph visualizer based on d3.js

Netjsonconfig

Network configuration management library based on NetJSON DeviceConfiguration

Django-rest-framework-gis

Geographic add-ons for Django REST Framework. Maintained by the OpenWISP Project.

OpenWISP-Geographic-Monitoring

A Rails application for managing a wISP's access points

OpenWISP-User-Management-System

OpenWISP User Management System (OWUMS) is a Ruby on Rails application, capable of managing a WISP's user base.

Django-owm-legacy

OpenWISP Manager backward compatible legacy features implemented in django

Django-rest-framework

Netjsonconfig-editor.js

[GSOC 2017] This project has stalled.

Openwisp-vxlan-updater

VXLAN updater script for OpenWISP, designed to be used on Linux systems having NetworkManager nmcli.

Openwisp-network-topology

Network topology collector and visualizer. Collects network topology data from dynamic mesh routing protocols or other popular networking software like OpenVPN, allows to visualize the network graph, save daily snapshots that can be viewed in the future and more.


Draft Ideas

  • full streaming from database (via SOS+proxy or via TS-API) to JavaScript client
  • Add WPS 2.0 support to WPSClient4ArcGIS
  • try to combine project requirements (= mentor effort provided) with motivating (fun, interesting) projcts -- ARE via DanielNuest - 2014-10-02
  • Usage statistics and performance evaluation of WPS, SOS and Timeseries API using the ELK stack (comprises new logging configuration, instructions, logging statements to capture all required information) -- DanielNuest - 2015-02-10
  • IOs version of enviroCar app
  • enviroCar website
  • PhoneGap für JS client
  • SOS.js for SOS 2.0 based on ows.js
  • Access control for Sensor Web REST-API
  • Simple Features for protobuf and others


Voir la vidéo: Python REST API #11 How to get django rest api data using Requests (Octobre 2021).