Slide 1

Slide 1 text

GeoDjango  Web  Mami Enomoto / Django Girls Japan

Slide 2

Slide 2 text

Who am I Mami Enomoto   !#&GIS *)'+#&%#&,"(#& ↓  -     $   

Slide 3

Slide 3 text

Code for CAT $.$'  ! ( WS - ),* $%"  NPO PTA#&  +   

Slide 4

Slide 4 text

      

Slide 5

Slide 5 text

   

Slide 6

Slide 6 text

2018 3

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

GeoDjango  Web 

Slide 9

Slide 9 text

 Python   (myenv)$ pip install Django Django    virtualenv(myenv) 

Slide 10

Slide 10 text

  G (myenv)$ django-admin startproject geodjango # G shell .- . G P .- < G U _ .- . G S < < W UL G P - . < G S P < G LI R S P _ . < G RI S P

Slide 11

Slide 11 text

 # A C UI = # LANGUAGE_CODE = 'en-us’ LANGUAGE_CODE = ‘ja’ E= = ' ' # / geodjango/settings.py

Slide 12

Slide 12 text



Slide 13

Slide 13 text

  (myenv)$ cd geodjango (myenv)$ python manage.py startapp map # map      shell

Slide 14

Slide 14 text

 # PS E DATABASES = { 'default’: { # ‘ENGINE’: ‘Django.db.backends.sqlite3’ # ‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’), 'ENGINE': 'django.contrib.gis.db.backends.postgis’, 'NAME': 'geodjango’, 'USER': 'geo’, }, } L NT E , ' , . : : = :A : : = A # : : = A _[ A I ] D L _[ geodjango/settings.py

Slide 15

Slide 15 text

   $ python manage.py createsuperuser shell

Slide 16

Slide 16 text

  (myenv)$ cd geodjango (myenv)$ python manage.py runserver shell

Slide 17

Slide 17 text



Slide 18

Slide 18 text



Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

   5@ %A>2! C&>2 6C&>2 9; 20052016 1,8453 *?B%$ B-.,)1C&1 BG(I"#"/84+E" *?B suinanjiko.geojson {"type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ 131.491361 ,34.186589 ] }, "properties": { "no":1, "ym":200504, "pref":" 7)", "river":"J&", "jiko":"C' F  HD 0* & <=", "accurate":"01.:” } }, :

Slide 21

Slide 21 text

geojson     (myenv)$ python manage.py ogrinspect --srid=4326 jiko.geojson Suinanjiko # This is an auto-generated Django model module created by ogrinspect. from django.contrib.gis.db import models class Suinanjiko(models.Model): no = models.IntegerField() ym = models.IntegerField() pref = models.CharField(max_length=0) river = models.CharField(max_length=0) jiko = models.CharField(max_length=0) accurate = models.CharField(max_length=0) geom = models.PointField(srid=4326) shell $ python manage.py ogrinspect <> < >

Slide 22

Slide 22 text

Geojson models.py from django.contrib.gis.db import models class Suinanjiko(models.Model): no = models.IntegerField() ym = models.IntegerField() pref = models.CharField(max_length=50) river = models.CharField(max_length=50) jiko = models.CharField(max_length=256) accurate = models.CharField(max_length=256) geom = models.PointField(srid=4326) def __str__(self): return self.jiko # max_length= # str()  

Slide 23

Slide 23 text

    (myenv)$ python manage.py makemigrations shell       

Slide 24

Slide 24 text

    (myenv)$ python manage.py migrate shell   

Slide 25

Slide 25 text

    load_suinanjiko.py import os from django.contrib.gis.utils import LayerMapping from map.models import Suinanjiko # Model     mapping = { 'no' : 'no’, 'ym' : 'ym’, : 'geom' : 'POINT’, } #   geojson_file = os.path.abspath( os.path.join(os.path.dirname(__file__), 'data’, 'suinanjiko.geojson’)) #  def run(verbose=True): lm = LayerMapping(Suinanjiko, geojson_file, mapping,transform=False, encoding='UTF-8’) lm.save(strict=True, verbose=verbose)

Slide 26

Slide 26 text

    (myenv)$ python manage.py shell >>> from map import load_Hokkaido >>> load_suinanjiko.run()  Saved : ~~~~ Saved : ~~~~ : >>> exit() shell Django load_suinanjiko.py  

Slide 27

Slide 27 text



Slide 28

Slide 28 text

   map/admin.py from django.contrib.gis import admin from map.models import Suinanjiko admin.site.register(Suinanjiko, admin.OSMGeoAdmin) #OpenStreetMap geodjango/urls.py # from django.contrib import admin from django.contrib.gis import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]

Slide 29

Slide 29 text

   (myenv)$ python manage.py runserver shell

Slide 30

Slide 30 text



Slide 31

Slide 31 text

REST Framework API

Slide 32

Slide 32 text

Django REST framework(DRF) (myenv)$ pip install djangorestframework-gis (myenv)$ pip install django-filter (myenv)$ pip install markdown (myenv)$ pip freeze : djangorestframework==3.8.2 djangorestframework-gis==0.13 django-filter==1.1.0 Markdown==2.6.11 shell    djangorestframework-gis : DRF    django-filter : "  markdown : Markdown! 

Slide 33

Slide 33 text

Django REST framework(DRF) . - . . - . L P : L P . . A I E P .<

Slide 34

Slide 34 text

 geodjango/settings.py INSTALLED_APPS = [ 'django.contrib.admin’, 'django.contrib.auth’, : 'django.contrib.gis', 'map', 'django_filters’, 'rest_framework’, 'rest_framework_gis’, 'markdown', ]     settings.py

Slide 35

Slide 35 text

 map/ serializers.py from rest_framework_gis import serializers from world.models import Suinanjiko Class SuinanjikoSerializer(serializers.GeoFeatureModelSerializer): class Meta: model = Suinanjiko geo_field = 'geom’ fields = ('__all__')    API    

Slide 36

Slide 36 text



Slide 37

Slide 37 text

   !  Django Girls Tutorial GeoDjango  " #   

Slide 38

Slide 38 text

Special Thanks GeoDjango    ! Django Girls  Code for Cat