萌新求救!Django 做出来的网页404异常

我才学习制作了一个小的网页(此时路径是:"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)
]

2个回答

index的html模板文件,提交按钮的 目标url 写错了,保持空即可。你写成了views当然找不到了

dongyu9901
sccwee 回复熊茂尧: 你要先调用is_valid()。if form.is_valid(): pic1 = form.cleaned_data['pic1']
大约一年之前 回复
dongyu9901
sccwee 回复熊茂尧: Whatever the data submitted with a form, once it has been successfully validated by calling is_valid() (and is_valid() has returned True), the validated form data will be in the form.cleaned_data dictionary. This data will have been nicely converted into Python types for you.
大约一年之前 回复
dongyu9901
sccwee 回复熊茂尧: 回复熊茂尧: 直接写:form['pic1']。我也记不清了,不知道对不对,你可以参考官方文档 https://docs.djangoproject.com/en/2.2/topics/forms/
大约一年之前 回复
weixin_43842521
上树的猫妖 就是这里的问题,谢谢了。但是form这边又报错了,AttributeError: 'PersonForm' object has no attribute 'cleaned_data',PersonForm是我写在forms.py里面继承forms.Form的类
大约一年之前 回复

当在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错误。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐