У меня есть следующее представление, которое получает данные из модели, запускает некоторые логики c и возвращает путь к файлу html.
from rest_framework.decorators import renderer_classes, api_view
from rest_framework.renderers import StaticHTMLRenderer
from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet
from three_Positions_plotting.app import main
from .serializers import LocationInfoSerializer
from .models import LocationInfo
class LocationInfoViewSet(ModelViewSet):
queryset = LocationInfo.objects.filter(id=1).values()
serializer_class = LocationInfoSerializer
data = queryset.reverse()[0]
serialized_data = LocationInfoSerializer(data, many=False)
points = list(serialized_data.data.values())
gdt1 = (points[1], points[2])
gdt2 = (points[3], points[4])
uav = (points[5], points[6], points[-2])
@api_view(['GET'])
@renderer_classes([StaticHTMLRenderer])
def simple_html_view(self, request, gdt1=gdt1, gdt2=gdt2, uav=uav):
data = main(gdt1, gdt2, uav)
return Response(data)
Что я пытаюсь сделать сделать, это сделать сгенерированную html страницу, я новичок в django остальные рамки и создание API в целом.
Так что я не понимаю, как «активировать» метод в этом представлении Я думал, что, когда пользователь отправляет информацию в API, он автоматически возвращает ее, но когда я публикую некоторые данные, ничего не происходит, и logi c даже не запускается.
Logi c что я бегу:
import numpy as np
from Project_Level.angle_condition import MeetAngleCond
from Project_Level.plot_folium import PlotOnMap
from Project_Level.utils import convert_to_xy
from triangulationapi.three_Positions_plotting.dataframes import GetDataToGeoPandas
from triangulationapi.three_Positions_plotting.positions_data_collecting import PositionsData
def main(gdt1: list, gdt2: list, uav: list):
# Get the complete latitude, longitude, lists.
positions_data = PositionsData(gdt1=gdt1,
gdt2=gdt2,
uav=uav)
full_lat_lon_list, lat_list, lon_list = positions_data.calculate_list_lens()
# Get cartesian coordinates for every point.
gdt1_xy = np.asarray(convert_to_xy(gdt1))
gdt2_xy = np.asarray(convert_to_xy(gdt2))
# Get the angle for every point in f_lat_lon_list
angles_list = MeetAngleCond()
plot_angles_list = angles_list.create_angles_list(lat_lon_list=full_lat_lon_list,
arrayed_gdt1=gdt1_xy,
arrayed_gdt2=gdt2_xy,
uav_elev=uav[-1])
get_final_lists = GetDataToGeoPandas()
lat_lon_a, lat_lon_b, optimal = get_final_lists.create_gpd_and_final_lists(angles_list=plot_angles_list,
lat_list=lat_list,
lon_list=lon_list)
# Initialize a folium map.
plot = PlotOnMap(lat_lon_a=lat_lon_a,
lat_lon_b=lat_lon_b,
optimal=optimal)
plot.create_map(mid_point=gdt1, zoom=13)
# Plot relevant locations.
plot.plot_gdt_and_triangulation(gdt1=gdt1, gdt2=gdt2, uav=uav)
# add some plugins to the map.
plot.plugins()
# return the generated html file with the map.
html_file = plot.return_html_link()
# auto opens the file.
auto_open = plot.auto_open(html_map_file='index.html',
path='/home/yovel/PycharmProjects/Triangulation-Calculator/triangulationapi/three_Positions_plotting/index'
'.html '
)
return html_file