我正在尝试使用(来自.导入视图)[关闭]

问题描述 投票:0回答:2

我在 myapp 中创建了一个 python 文件并将其命名为 urls.py 它看起来像

    from django.contrib import admin
    from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
    path("", views.home),
    path("predict/", views.predict),
    path("predict/result", views.result)

我还按照指示编辑了项目的 urls.py,现在看起来像这样

  from django import views
  from django.contrib import admin
  from django.urls import path


urlpatterns = [
  path('admin/', admin.site.urls),
  path("", views.home),
  path("predict/", views.predict),
  path("predict/result", views.result)

myapp 中的views.py 看起来像

def result(request):
data = pd.read_csv(r"C:\Users\user\Desktop\MAX\diabetes.csv")
X = data.drop("Outcome", axis=1)
Y = data['Outcome']
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2)

model = LogisticRegression(max_iter=1000)
model.fit(X_train, Y_train)

val1 = float(request.Get['n1'])
val2 = float(request.Get['n2'])
val3 = float(request.Get['n3'])
val4 = float(request.Get['n4'])
val5 = float(request.Get['n5'])
val6 = float(request.Get['n6'])
val7 = float(request.Get['n7'])
val8 = float(request.Get['n8'])

pared = model.predict([[val1, val2, val3, val4, val5, val6, val7, val8,]])

result1 = ""
if pared == [1]:
    result1 = "positive"
elif pared == [0]:
    result1 = 'negative'
return render(request, "predict", {"result": result1})

我还在项目的 settings.py 的已安装应用程序列表中添加了 myapp

python python-3.x django django-views pycharm
2个回答
0
投票

您将项目级别的 urls.py 与应用程序的 urls.py 混淆了。您的项目 urls.py 位于包含 settings.py 的目录中。它应该看起来像这样:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

您的应用程序 urls.py 应在您的应用程序目录中创建,即您拥有视图和模型的位置。在该目录中创建一个名为 urls.py 的文件。它应该看起来像这样:

from django.urls import path

from . import views

app_name = 'myapp'
urlpatterns = [
    path(" ", views.home),
    path("predict/", views.predict),
    path("predict/result", views.result)

OP没有在settings.py中写入应用程序名称。在 settings.py 中包含您的应用程序名称,如下所示:

INSTALLED_APPS = [
    # Default apps
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # My apps
    'myapp',     
]

请阅读,因为您似乎混淆了很多东西。另请阅读我包含的文档 典型的 Django 项目由一个或多个应用程序组成。您可以使用命令

django-admin startproject your_project_name .
创建项目,并使用以下命令
python manage.py startapp your_app_name
创建应用程序。请确保您没有混淆两者。另请确保您的应用程序名称已包含在
INSTALLED_APPS
settings.py
列表中,请参阅 docs 了解更多信息。


0
投票

更换代码:

from django.contrib import admin
from django.urls import path
from your_appname import views # change here. 

urlpatterns = [
    path('admin/', admin.site.urls),
    path("", views.home),
    path("predict/", views.predict),
    path("predict/result", views.result)

确保在你的settings.py中:

INSTALLED_APPS = [
    
    #others

    # internal app
    'your_appname',     
]
© www.soinside.com 2019 - 2024. All rights reserved.