将Python代码转换为Django框架

将Python代码转换为Django框架,python,django,opencv,Python,Django,Opencv,我的桌面上有一个用Python编写的独立应用程序。我在应用程序中使用了Tkinter、cv2、numpy等模块。我的Tkinter呈现我的GUI(它有一个按钮和一个图像)。现在我的问题是,我想让它成为一个web应用程序。为此,我使用Django框架,它要求分离模型、视图和模板(MTV)。如何使用HTML呈现具有相同按钮和图像的相同GUI。(我有按钮和图像的GUI应该在模板中,而我的业务逻辑应该在视图中。)这是我想要转换为MTV格式的代码段。我想上传按钮是在模板(HTML)。点击上传按钮,程序将进

我的桌面上有一个用Python编写的独立应用程序。我在应用程序中使用了Tkinter、cv2、numpy等模块。我的Tkinter呈现我的GUI(它有一个按钮和一个图像)。现在我的问题是,我想让它成为一个web应用程序。为此,我使用Django框架,它要求分离模型、视图和模板(MTV)。如何使用HTML呈现具有相同按钮和图像的相同GUI。(我有按钮和图像的GUI应该在模板中,而我的业务逻辑应该在视图中。)这是我想要转换为MTV格式的代码段。我想上传按钮是在模板(HTML)。点击上传按钮,程序将进入视图(逻辑)。如何将逻辑和HTML分离?(有必要吗?我可以不分离地将整个东西转换为Django框架吗) 请帮忙

def upload():

    global original_img,img,img2,img3,image_path,old_label_image,photo,label,image_path,image,ax,fig
    print "upload"
    image_path=tkFileDialog.askopenfilename()
    image = Image.open(image_path)
    original_img= image.copy()
    image.thumbnail((1000,625))
    photo = ImageTk.PhotoImage(image)
    label = Label(image=photo)
    label.image = photo
    if old_label_image is not None:
        old_label_image.destroy()
        old_label_image = label
    #label.update()
    label.pack()

root = Tk.Tk()  #  creating an instance of Tk class
print "main"

old_label_image = None
frame = Frame(root)   #creates a new window (given by the pathName argument) and makes it into a frame widget.The frame command returns the path name of the new window.
frame.pack() #The Pack geometry manager packs widgets in rows or columns
bottomframe = Frame(root)
bottomframe.pack( side = BOTTOM )

UploadButton = Button(frame, text="Upload", command= upload)
UploadButton.pack( side = LEFT)

root.mainloop()

您不能像这样“转换”代码。为web编写应用程序与为桌面框架编写应用程序完全不同。您需要考虑如何用HTML表示表单,如何接受上传的文件,如何向用户表示响应,等等。Django具有所有这些功能,但它是一种完全不同的处理方式:首先,表单的初始表示和响应的返回将在单独的请求中完成,它们之间没有持久性。

你不能。下面是那些想理解的人的理由:

1st--Python代码由其解释器执行,该解释器是用C编写的程序(Python软件基金会的解释器被正确地称为“Cpython”,以区别于也可以运行Python代码的第三方解释器)。Python代码由Cpython解释,它使用“X11”[X Windows for Linux Unix]、“Quartz Compositor MacX”[Macintosh]、[或“DWM”[Destop Windows Manager for Windows]将其内容显示在Python控制台中,如“Idle”或“终端模拟器”,甚至直接在计算机窗口的屏幕上显示为图形。(Cpython有3个基本版本,Mac、Windows和Unix/Linux各有一个实现)

第二--你也可以把web浏览器想象成一个程序解释器。但是它不能解释Python代码。他们只知道如何解释HTML、CSS和Javascript。但是web浏览器不像第三方控制台或计算机窗口系统那样,它就像一台虚拟机,解释和显示在它自己的显示环境Web浏览器中显示结果。不幸的是,这些浏览器都没有被编程来解释Python代码

3rd--Python是一种非常高级的语言,这意味着它是由低级语言设计的。在Python出现之前,必须有C。在C出现之前,必须有汇编。在汇编出现之前,必须有机器语言。计算机代码在复杂性方面的进化可以与生物学相比,Javascript也是高度进化的,但它的进化完全依赖于Web浏览器。Python的进化依赖于终端模拟器和计算机的窗口系统[X11、MacX或DWM]