Рисование фигур на html canvas в python / django

#python #django #shapes

#python #django #фигуры

Вопрос:

Я пытаюсь нарисовать фигуры, линии, треугольники, прямоугольник на веб-странице с помощью Django. Как этого добиться? Ниже приведен мой код.

views.py

 import tkinter
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader

def drawchart():
        root = tkinter.Tk() 
        canvas = root.Canvas(root, width=400, height=500)
        canvas.pack()
        blackline = canvas.create_line (0, 0, 200, 0)
        root.mainloop()
        return blackline
  

html-файл

 <!DOCTYPE html>
<html>
    <Head>
        <title>Line</title>
    </Head>
    <body>
       <h3>test</h3> 
       <canvas id="myCanvas" width="400" height="500">
        {{drawchart()}}
       </canvas>
    </body>
</html>
  

Комментарии:

1. Кажется, вы путаете серверный и клиентский код. К сожалению, HTML5 canvas и tk canvas не имеют ничего общего.

2. Я хочу рисовать и обслуживать фигуры на html canvas, используя представления django

3. Пожалуйста, отметьте ответ принятым, если он вам помог.

4. @Abbas Вместо этого я переключился на использование SVG

5. @KapishM: Я думаю, было бы неплохо опубликовать ваше решение в качестве ответа на ваш собственный вопрос.

Ответ №1:

tkinter является ли Python привязкой к оконным библиотекам операционной системы или инструментарию GUI. То, чего вы хотите достичь, не может быть сделано с его помощью.

Чтобы играть с canvas в HTML, вам необходимо иметь библиотеки HTML для графического программирования. WebGL — это javascript API, который предоставляет графические возможности веб-страницам. THEJS — это библиотека javascript, которая может использоваться для программирования графики на веб-страницах.

WebGL, являющийся javascript API, не требует включения чего-либо еще на вашу страницу и может быть использован с помощью ванильных вызовов javascript. Однако ThreeJS требует, чтобы его зависимости были включены на вашу страницу, точно так же, как jquery или jquery-ui, и тогда вы также можете использовать это.

Я надеюсь, что этот ответ поможет вам двигаться в правильном направлении.

Ответ №2:

Используйте html canves в шаблонах django или в представлениях. Tk предназначен только для настольных приложений. Не удается использовать tk на веб-сайтах или в представлениях django или в шаблонах django.Используйте html, cs, js для создания веб-сайтов. Думаю, это помогает.