将类导入网址.py在Djang

2024-04-24 16:21:20 发布

您现在位置:Python中文网/ 问答频道 /正文

在过去的几周里,我从开发一个处理简单XML文件,然后将其内容写入oracledb(cx_Oracle)并以HTML格式输出的应用程序,转变为使用Django框架。Django框架转换是不必要的,但是既然我有机会用Django开发一些东西,我想为什么不呢,因为这对我来说是一个新领域,不会损害我的简历。在

不管怎样,我不知道在我的网址.py从views.py文件导入类时的文件。以下是当前的内容:

网址.py

from myproj.views import Pymat_program

pymatProgram = Pymat_program()

urlpatterns = (
    url(r'^pymat/$', pymatProgram.abc),
)

视图.py

^{pr2}$

我尝试过使用request,不使用request,以及如何在url元组中调用类,但都没有用。当我在类之外使用一个定义(即不在任何类中)时,它将正确地显示在HTML中。在


Tags: 文件djangopy框架url内容requesthtml
2条回答

由于在Django中使用基于类的视图,因此必须在URL中调用该类,如下所示:

from myproj.views import Pymat_program

pymatProgram = Pymat_program()

urlpatterns = (
    url(r'^pymat/$', pymatProgram.as_view()),
)

然后在类中使用get或post方法名,如:

^{pr2}$

第二种方法是使用基于函数的视图:

网址.py

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^articles/2003/$', views.view_name),
]

视图.py

from django.http import HttpResponse
import datetime

def view_name(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

有关详细信息,请查看class based views docs

你不想在类中包装程序。(一般来说,在Python中,您应该像Java可能只处理静态成员的类一样对待模块。)

实际上,有两种方法:

基于函数的视图

在网址.py

from myproj.views import abc_view

urlpatterns = (
    url(r'^pymat/$', abc_view),
)

在视图.py

^{pr2}$

基于类的视图

在网址.py

from myproj.views import AbcView

urlpatterns = (
    url(r'^pymat/$', AbcView.as_view()),
)

在视图.py

from django.views.generic import View

class AbcView(View):
    def get(self, request, *args, **kwargs):
        test = "<html><body>Random text.</body></html>"
        return HttpResponse(test)

相关问题 更多 >