uspješno učitana skripta
This commit is contained in:
parent
3709991263
commit
6994f43490
0
plovidba_aplikacija/management/commands/__init__.py
Normal file
0
plovidba_aplikacija/management/commands/__init__.py
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1,53 @@
|
|||||||
|
import json
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from django.contrib.gis.geos import Point
|
||||||
|
from plovidba_aplikacija.models import ObjektSigurnosti
|
||||||
|
from django.db import transaction
|
||||||
|
|
||||||
|
# dodani podaci
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = """
|
||||||
|
Programatically create entries for plovidba_aplikacija model ObjektSigurnosti
|
||||||
|
"""
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
json_rpath = r'C:\Users\Student1\Desktop\plovidba\myenv\plovidba_projekt\plovidba_aplikacija\management\commands\testnipodaci.json'
|
||||||
|
|
||||||
|
created_entries = 0
|
||||||
|
existing_entries = 0
|
||||||
|
|
||||||
|
with open(json_rpath, encoding='utf-8') as r:
|
||||||
|
data = json.load(r)
|
||||||
|
|
||||||
|
with transaction.atomic():
|
||||||
|
for feature in data.get('features', []):
|
||||||
|
properties = feature.get('properties', {})
|
||||||
|
geometry = feature.get('geometry', {})
|
||||||
|
|
||||||
|
latitude = geometry.get('coordinates', [])[1]
|
||||||
|
longitude = geometry.get('coordinates', [])[0]
|
||||||
|
naziv_objekta = properties.get('naziv_objekta', '')
|
||||||
|
|
||||||
|
if not (isinstance(latitude, (float, int)) and isinstance(longitude, (float, int))):
|
||||||
|
print("Skipping invalid coordinates.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
print(f"Latitude: {latitude}, Longitude: {longitude}, Naziv Objekta: {naziv_objekta}")
|
||||||
|
|
||||||
|
|
||||||
|
obj, created = ObjektSigurnosti.objects.get_or_create(
|
||||||
|
naziv=naziv_objekta,
|
||||||
|
lokacija=Point(float(longitude), float(latitude))
|
||||||
|
)
|
||||||
|
if created:
|
||||||
|
created_entries +=1
|
||||||
|
print("Kreiran OS {} - {}".format(obj.naziv, obj.lokacija))
|
||||||
|
else:
|
||||||
|
existing_entries += 1
|
||||||
|
print("Existing OS {} - {}".format(obj.naziv, obj.lokacija))
|
||||||
|
|
||||||
|
print("Created: {}".format(created_entries))
|
||||||
|
print("Existing:".format(existing_entries))
|
||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@ -1,24 +0,0 @@
|
|||||||
import json
|
|
||||||
from django.contrib.gis.geos import Point
|
|
||||||
from plovidba_aplikacija.models import ObjektSigurnosti
|
|
||||||
|
|
||||||
# dodani podaci
|
|
||||||
def run():
|
|
||||||
with open(r'C:\Users\Student1\Desktop\plovidba\myenv\plovidba_projekt\plovidba_aplikacija\scripts\testnipodaci.json') as file:
|
|
||||||
podaci = json.load(file)
|
|
||||||
|
|
||||||
features = podaci.get('features', [])
|
|
||||||
for feature in features:
|
|
||||||
properties = feature.get('properties', {})
|
|
||||||
naziv = properties.get('naziv_objekta', '')
|
|
||||||
|
|
||||||
geometrija = feature.get('geometrija', {})
|
|
||||||
koordinate = geometrija.get('koordinate', [])
|
|
||||||
|
|
||||||
if koordinate:
|
|
||||||
latitude, longitude = koordinate[0], koordinate[1]
|
|
||||||
lokacija = Point(latitude, longitude, srid=3765)
|
|
||||||
ObjektSigurnosti.objects.create(naziv=naziv, lokacija=lokacija)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
run()
|
|
||||||
File diff suppressed because one or more lines are too long
BIN
plovidba_projekt/__pycache__/env.cpython-38.pyc
Normal file
BIN
plovidba_projekt/__pycache__/env.cpython-38.pyc
Normal file
Binary file not shown.
Binary file not shown.
101
plovidba_projekt/env.py
Normal file
101
plovidba_projekt/env.py
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'BASE_DIR', 'ABS_PATH', 'ENV_BOOL', 'ENV_NUM', 'ENV_STR', 'ENV_LIST', 'PARDIR', 'ENV_TUPLE'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
|
||||||
|
|
||||||
|
PARDIR = os.pardir
|
||||||
|
|
||||||
|
APPLICATION_NAME = "rgi-dev"
|
||||||
|
|
||||||
|
ENV_PATH = os.path.join('/etc/secrets/', APPLICATION_NAME)
|
||||||
|
|
||||||
|
|
||||||
|
def ABS_PATH(*args):
|
||||||
|
return os.path.join(BASE_DIR, *args)
|
||||||
|
|
||||||
|
|
||||||
|
def ENV_BOOL(name, default=False):
|
||||||
|
"""
|
||||||
|
Get a boolean value from environment variable.
|
||||||
|
If the environment variable is not set or value is not one or "true" or
|
||||||
|
"false", the default value is returned instead.
|
||||||
|
"""
|
||||||
|
|
||||||
|
if name not in os.environ:
|
||||||
|
return default
|
||||||
|
if os.environ[name].lower() in ['true', 'yes', '1']:
|
||||||
|
return True
|
||||||
|
elif os.environ[name].lower() in ['false', 'no', '0']:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def ENV_NUM(name, default=None):
|
||||||
|
"""
|
||||||
|
Get a integer value from environment variable.
|
||||||
|
If the environment variable is not set, the default value is returned
|
||||||
|
instead.
|
||||||
|
"""
|
||||||
|
return int(os.environ.get(name, default))
|
||||||
|
|
||||||
|
|
||||||
|
def ENV_STR(name, default=None):
|
||||||
|
"""
|
||||||
|
Get a string value from environment variable.
|
||||||
|
If the environment variable is not set, the default value is returned
|
||||||
|
instead.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return os.environ.get(name, default)
|
||||||
|
|
||||||
|
|
||||||
|
def ENV_LIST(name, separator, default=None):
|
||||||
|
"""
|
||||||
|
Get a list of string values from environment variable.
|
||||||
|
If the environment variable is not set, the default value is returned
|
||||||
|
instead.
|
||||||
|
"""
|
||||||
|
if default is None:
|
||||||
|
default = []
|
||||||
|
|
||||||
|
if name not in os.environ:
|
||||||
|
return default
|
||||||
|
return os.environ[name].split(separator)
|
||||||
|
|
||||||
|
|
||||||
|
def ENV_TUPLE(name, separator, default=None):
|
||||||
|
"""
|
||||||
|
Get a tuple of string values from environment variable.
|
||||||
|
If the environment variable is not set, the default value is returned
|
||||||
|
instead.
|
||||||
|
"""
|
||||||
|
if default is None:
|
||||||
|
default = ()
|
||||||
|
|
||||||
|
if name not in os.environ:
|
||||||
|
return default
|
||||||
|
return tuple(os.environ[name].split(separator))
|
||||||
|
|
||||||
|
|
||||||
|
def _load_env_file():
|
||||||
|
|
||||||
|
if os.path.exists(os.path.join(BASE_DIR, ".env")):
|
||||||
|
envfile = os.path.join(BASE_DIR, ".env")
|
||||||
|
else:
|
||||||
|
envfile = os.path.join(ENV_PATH, ".env")
|
||||||
|
|
||||||
|
if os.path.isfile(envfile):
|
||||||
|
for line in open(envfile):
|
||||||
|
line = line.strip()
|
||||||
|
if not line or line.startswith('#') or '=' not in line:
|
||||||
|
continue
|
||||||
|
k, v = line.split('=', 1)
|
||||||
|
os.environ[k] = v
|
||||||
|
|
||||||
|
|
||||||
|
_load_env_file()
|
||||||
@ -19,6 +19,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent
|
|||||||
import os
|
import os
|
||||||
from osgeo import gdal
|
from osgeo import gdal
|
||||||
|
|
||||||
|
from .env import BASE_DIR, ENV_BOOL, ENV_LIST, ENV_NUM, ENV_STR, PARDIR # noqa
|
||||||
|
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||||
|
|
||||||
@ -46,7 +47,9 @@ INSTALLED_APPS = [
|
|||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'django.contrib.gis',
|
'django.contrib.gis',
|
||||||
'django_extensions',
|
'django_extensions',
|
||||||
|
# 3rd party
|
||||||
'rest_framework',
|
'rest_framework',
|
||||||
|
# Custom apps:
|
||||||
'plovidba_aplikacija',
|
'plovidba_aplikacija',
|
||||||
|
|
||||||
]
|
]
|
||||||
@ -127,6 +130,15 @@ USE_I18N = True
|
|||||||
|
|
||||||
USE_TZ = True
|
USE_TZ = True
|
||||||
|
|
||||||
|
PROJ_LIB = ENV_STR("PROJ_LIB", None)
|
||||||
|
GDAL_DATA = ENV_STR("GDAL_DATA", None)
|
||||||
|
|
||||||
|
if PROJ_LIB:
|
||||||
|
os.environ["PROJ_LIB"] = PROJ_LIB
|
||||||
|
|
||||||
|
if GDAL_DATA:
|
||||||
|
os.environ["GDAL_DATA"] = GDAL_DATA
|
||||||
|
|
||||||
|
|
||||||
# Static files (CSS, JavaScript, Images)
|
# Static files (CSS, JavaScript, Images)
|
||||||
# https://docs.djangoproject.com/en/4.2/howto/static-files/
|
# https://docs.djangoproject.com/en/4.2/howto/static-files/
|
||||||
@ -138,5 +150,3 @@ STATIC_URL = 'static/'
|
|||||||
|
|
||||||
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
||||||
|
|
||||||
|
|
||||||
GDAL_LIBRARY_PATH = r'C:\Users\Student1\GDAL\gdal304.dll'
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user