Azure의 Table 스토리지를 사용하여 Django(PTVS) 애플리케이션 생성 및 배포

Table 스토리지의 NoSQL 데이터 스토리지


NoSQL(일반적으로 "Not only SQL"로 해석됨)은 관계 데이터베이스 관리 시스템(RDBMS)을 제외한 데이터베이스 관리 시스템의 대략적인 분류어입니다.
NoSQL계 데이터베이스 관리 시스템에서 데이터의 저장과 획득은 대부분 고도로 최적화되었다.그것의 최적화를 위해 기능성을 최소화한 것도 있다.값 및 값을 가져오는 키만 저장되는 Key-Value형 데이터베이스가 그 예입니다.wiki
간단하게 말하면 NoSQL 데이터베이스 환경은 일종의 비관계형 광역 분포식 데이터베이스 시스템으로 대량의 데이터를 신속하고 동적으로 조직하고 분석할 수 있다.인용하다
Azure에서 이 NoSQL을 사용하는 저장 서비스를 제공했는데 이를 NoSQL 데이터 저장이라고 부른다.

Django를 위한 응용 프로그램 만들기


지난번 이후.
NoSQL을 사용하는 Python의 포장에 대해 설명해 드리겠습니다.
제가 일부분을 설명하겠습니다. 상세한 상황은 보십시오여기

Python Azure 스토리지 패키지


테이블 작성
TableService: Azure의 NoSQL 데이터 저장소 액세스
create_표: 테이블 만들기
account_name = 'ストレージのアカウント名'
account_key = 'key(複数あるkeyのどれかで良い)'
table_service = TableService(account_name=account_name, account_key=account_key)
table_service.create_table('mytasks')
추출
table_service.query_entities('표명',''기록 지정')
SQL:Selectname,category From mytasks로 변경;
tasks = table_service.query_entities('mytasks', '', 'name,category')
for task in tasks:
    print(task.name)
    print(task.category)
삽입
※ 파티션 키와 회전 키를 지정해야 합니다.
같은 구역 키를 가진 실체는 같은 노드에 저장됩니다.RowKey는 솔리드가 속한 파티션에서 솔리드의 고유 식별자입니다.
table_service.insert_entity('mytasks', {'PartitionKey':name+category, 'RowKey':name, 'name':name, 'category':category})     
바꾸다
솔리드에 있으면 대체, 없으면 삽입
두 번째 매개변수, 세 번째 매개변수는 파티션 키워드와 회전 키워드를 동일하게 지정합니다.
task = {'name':YUKI, 'category':Friends}
table_service.insert_or_replace_entity('mytasks', name+category, name, task)
업데이트
문서 구성 단위 및 회전 키 포인트를 지정하여 레코드를 업데이트할 수 있습니다.
table_service.update_entity('mytasks', partition_key, row_key, {'name': name, 'category':category})
엔티티 삭제
엔티티를 삭제하려면 파티션 키 및 회전 키 포인트를 지정하여 제거할 수 있습니다.
table_service.delete_entity('mytasks',name+category,name)
테이블 삭제
table_service.delete_table('tasktable')

Django 응용 프로그램 만들기


지난번에 대한 약간의 개조로 삭제 기능이 추가되었다.
views.py
from django.shortcuts import render
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 = 'ストレージ名'
account_key = 'ストレージのkey'
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']
    table_service.delete_entity('mytasks',name+category,name)
    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>
                <td>Check</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>   
                        <td><input type="submit" value="削除"></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'),
]

실행


새로 구현된 삭제 기능만 시도
삭제 버튼을 누르면 레코드가 삭제됩니다.
※ 실제 조사에 따르면 Azure의 저장소에서 테이블과 기록을 삭제할 수 없습니다.Azure에서 테이블을 삭제하려면 저장소를 다시 만들 수도 있습니다.다만, 번거롭고 힘들기 때문에 프로그램에서 삭제하는 것을 권장합니다.


Azure에 Table 스토리지를 사용하는 Django 애플리케이션 배포


항목을 마우스 오른쪽 버튼으로 클릭하고 게시 를 선택합니다.

icrosoft Azure Web Apps 선택[발행]

[New]로 새로운 어플리케이션 만들기!

Web App Name 및 App Service Plan의 이름 지정
자원 그룹이 없으면 만들기

기본적으로 확인하기만 하면 상세한 설정을 원하는 사람은 "다음"을 선택한다
문제 없으니까 그냥 [발매]
그래서 Azure에서 향상되었습니다

마지막으로 Azure의 포털에서 화면을 관리합니다.
【App Service】➡만든 APP 이름➡개요➡︎【URL】
선택하면 방금 만든 Django 어플리케이션이 시작됩니다!!

좋은 웹페이지 즐겨찾기