[PYTHON] Verwendung des Azure Table-Speichers von Django (PTVS)

Was ist Tischspeicher?

Der Azure Table Storage Service (https://azure.microsoft.com/en-us/documentation/articles/storage-python-how-to-use-table-storage/) speichert große Mengen strukturierter Daten. Ich werde. Dieser Dienst ist ein ** NoSQL-Datenspeicher **, der authentifizierte Anrufe innerhalb und außerhalb der Azure-Cloud akzeptiert. Der Punkt ist, dass Sie SQL-Daten extern speichern können. Verwenden von PTVS Dies ist nützlich, wenn Sie SQL mit Django verwenden möchten.

Django-Anwendungserstellung

Wir werden es unter Bezugnahme auf die Website von hier erstellen. Erstellen Sie zunächst eine neue Django-App. Die Erstellungsmethode finden Sie unter hier. Bitte laden Sie das ** azure ** -Paket mit pip von ** Install Python Package ** herunter. azure_pip.png

Speichererstellung

Bei Azure Portal Wählen Sie ** [Speicherkonto] ➡︎ [Hinzufügen] **. Grundsätzlich können Sie nur den Teil ** name ** festlegen und dann die Standardeinstellungen verwenden. Wenn Sie keine ** Ressourcengruppe ** erstellt haben, erstellen Sie eine! ストレージ設定.png

Nach der Erstellung stammt das Speicherkonto von dem Konto, das Sie gerade erstellt haben ** [Konto] ➡︎ [Zugangsschlüssel] ➡︎ [Speicherkonto / Schlüssel] ** Lass uns erinnern! Erforderlich beim Zugriff von außen. アクセスキー.png

Füllen Sie den Quellcode aus

Ich habe von der zuerst vorgestellten Seite verwiesen. Ich werde die Erklärung des importierten Azurblau weglassen, aber wenn Sie mehr wissen möchten, [hier](https://github.com/yuesan/azure-content-jajp/blob/master/articles/storage/storage-python-how- Es gibt eine Erklärung in to-use-table-storage.md).

views.py


from django.http import HttpRequest
from django.template import RequestContext
from datetime import datetime

from django.http import HttpResponse
from django.template.loader import render_to_string
from azure.storage.table import TableService, Entity

account_name = 'Name des Speicherkontos'
account_key = 'key(Jeder von mehreren Schlüsseln ist in Ordnung)'
table_service = TableService(account_name=account_name, account_key=account_key)
table_service.create_table('mytasks')

def list_tasks(request):      
    entities = table_service.query_entities('mytasks', '', 'name,category')
    html = render_to_string('app/test.html', {'entities':entities})     
    return HttpResponse(html)
 
 
def add_task(request):     
    name = request.GET['name']     
    category = request.GET['category']       
    table_service.insert_entity('mytasks', {'PartitionKey':name+category, 'RowKey':name, 'name':name, 'category':category})     
    entities = table_service.query_entities('mytasks', '', 'name,category')     
    html = render_to_string('app/test.html', {'entities':entities})     
    return HttpResponse(html)
 
def update_task(request):     
    name = request.GET['name']     
    category = request.GET['category']        
    partition_key = name + category     
    row_key = name     
    table_service.update_entity('mytasks', partition_key, row_key, {'PartitionKey':partition_key, 'RowKey':row_key, 'name': name, 'category':category})     
    entities = table_service.query_entities('mytasks', '', 'name,category')         
    html = render_to_string('app/test.html', {'entities':entities})     
    return HttpResponse(html)

test.html


<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>     
    <body>
        <h2>My Tasks</h2> <br>     
        <table border="1">
            <tr>
                <td>Name</td>
                <td>Category</td>
            </tr>     
            {% for entity in entities %}     
                <form action="update_task" method="GET">
                    <tr>
                        <td>{{entity.name}} <input type="hidden" name='name' value="{{entity.name}}"></td>     
                        <td>{{entity.category}} 
                            <input type="hidden" name='category' value="{{entity.category}}"></td>     
                    </tr>     
                </form>     
            {% endfor %}     
        </table>     
        <br>     
        <hr>    
        <table border="1">
            <form action="add_task" method="GET">
                <tr>
                    <td>Name:</td
                    ><td><input type="text" name="name"></input></td>
                </tr>     
                <tr>
                    <td>Category:</td>
                    <td><input type="text" name="category"></input></td>
                </tr>     
                <tr>
                    <td><input type="submit" value="add task"></input></td>
                </tr>     
            </form>     
        </table>     
    </body>     
</html>

urls.py


urlpatterns = [
    url(r'^$', 'app.views.list_tasks'),
    url(r'^list_tasks$', 'app.views.list_tasks'),
    url(r'^add_task$', 'app.views.add_task'),
    url(r'^update_task$', 'app.views.update_task')

Lauf

Wenn Sie es ausführen, gibt es ** Name: ** und ** Kategorie **. Füllen Sie also jede aus und fügen Sie eine Aufgabe hinzu, um den Wert in ** Meine Aufgaben ** zu speichern. Wenn Sie es erneut füllen oder Django neu starten, bleibt der Wert natürlich erhalten.

起動1.png 起動2.png

Am Ende

Sie können sehen, dass der Wert tatsächlich aus dem Speicherkonto eingefügt wurde. Es ist sehr schwierig und ärgerlich, SQL tatsächlich unter Windows zu installieren. Ich denke, es ist eine sehr nette Funktion. Probieren Sie es also aus.

Recommended Posts

Verwendung des Azure Table-Speichers von Django (PTVS)
Wie man SWIG von waf benutzt
Verwenden Sie Azure Blob Storage aus Python
[TF] Verwendung von Tensorboard von Keras
Erstellen und Bereitstellen von Django-Apps (PTVS) mithilfe des Azure Table-Speichers
Studie aus Python Hour7: Verwendung von Klassen
MySQL-Herausforderungen für externen Azure-Speicher mit Django (PTVS)
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von Virtualenv
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
[BigQuery] Verwendung der BigQuery-API für die Python-Tabellenerstellung-
[Python] [Django] Verwendung des Auswahlfelds und Hinzufügen von Optionen
Verwendung von Keras ~ Von der einfachen Modellgenerierung bis zum CNN ~
Verwendung von Bootstrap in der generischen Klassenansicht von Django
Verwendung von Django mit Google App Engine / Python
Wie man Decorator in Django benutzt und wie man es macht
Verwendung von Qt Designer
Verwendung der Suche sortiert
[gensim] Verwendung von Doc2Vec
python3: Verwendung der Flasche (2)
Verstehen Sie, wie man Django-Filter verwendet
Verwendung des Generators
[Python] Verwendung von Liste 1
Verwendung von FastAPI ③ OpenAPI
Wie benutzt man Python Argparse?
Verwendung von IPython Notebook
Wie man Pandas Rolling benutzt
[Hinweis] Verwendung von virtualenv
Verwendung von Redispy-Wörterbüchern
Python: Wie man pydub benutzt
[Python] Verwendung von checkio