我在 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
您将项目级别的 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 了解更多信息。
更换代码:
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',
]