我才学习制作了一个小的网页(此时路径是:"http://127.0.0.1:8000/index/")
主要目的是向mysql数据库传输一个图片一个文件已经图片的图片名字,在选择完文件点提交后,就变成"http://127.0.0.1:8000/views/" 了,并且报404错误,
如何才能返回一个正常的网页,比如:index2.html。然后图片,文件也能上传到mysql。
views.py
from django.shortcuts import render
from myapp import models
from myapp.forms import PersonForm
# Create your views here.
def index(request):
if request.method == 'POST':
form =PersonForm(request.POST, request.FILES)
pic1 = form.cleaned_data['pic1']
name1 = form.cleaned_data['name1']
label1 = form.cleaned_data['label1']
models.db_boxs.objects.create(pic=pic1,name=name1,label=label1)
return HttpResponse('regist success')
if request.method == 'GET':
return render(request,'index.html',{'form':PersonForm()})
return render(request,'index.html',{'form':PersonForm()})
url.py
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index)
]
index的html模板文件,提交按钮的 目标url 写错了,保持空即可。你写成了views当然找不到了
你好博主,请问这个问题解决了吗,我最近也遇到了这个问题
当在django的view中引发一个Http404异常之后,Django会加载一个处理404错误的特殊view。它在你的根URLconf中查找处理404错误的handler404(并且只能在根URLconf中查找),404 view的本身和其他view一样,没什么特别的。
通常不需要写404view,如果没有设置handler404,内置的django.views.defaults.page_not_found()会被默认调用。在这种情况下,你可以在模板的根目录下创建一个404.html文件。对所有出现的404错误,默认的404 view将会使用这个文件作为模板。如果settings里面的DEBUG设置为False,并且不创建404.html文件的话,会出现一个Http500错误,所以创建一个404.html模板文件是很有必要的。如果DEBUG设置为True,那么404view将不会被用到,因此404.html模板也不会被渲染,取而代之的将是浏览器上出现的traceback错误。