python - Django 3.0 Not Found: /favicon.ico and failing to store uploaded image into disk
问题描述
I am a newbie to Django development and developing an app where users can upload their details and profile picture. The uploaded picture is failed to store in the disk and showing an error. please help me out. [EDITED]
Not Found: /favicon.ico
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 53590)
Traceback (most recent call last):
File "c:\users\venkatesh\appdata\local\programs\python\python38-32\lib\socketserver.py", line 650, in process_request_thread
self.finish_request(request, client_address)
File "c:\users\venkatesh\appdata\local\programs\python\python38-32\lib\socketserver.py", line 360, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "c:\users\venkatesh\appdata\local\programs\python\python38-32\lib\socketserver.py", line 720, in __init__
self.handle()
File "C:\Users\venkatesh\Envs\django\lib\site-packages\django\core\servers\basehttp.py", line 174, in handle
self.handle_one_request()
File "C:\Users\venkatesh\Envs\django\lib\site-packages\django\core\servers\basehttp.py", line 182, in handle_one_request
self.raw_requestline = self.rfile.readline(65537)
File "c:\users\venkatesh\appdata\local\programs\python\python38-32\lib\socket.py", line 669, in readinto
return self._sock.recv_into(b)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
Here is my urls.py file
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from django.views.generic.base import RedirectView
from django.contrib.staticfiles.storage import staticfiles_storage
from . import views
urlpatterns = [
path('',views.home,name='home'),
path('signup/',views.register,name='signup'),
path('signup/register',views.register,name='signup'),
path('signin/',views.signin,name='signin'),
path('signin/signin',views.signin,name='signin'),
path('logout/',views.logout,name='logout'),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
Here is my settings.py
"""
Django settings for AI project.
Generated by 'django-admin startproject' using Django 3.0.7.
For more information on this file, see
https://docs.djangoproject.com/en/3.0/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.0/ref/settings/
"""
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '4+12aq#j(k%zq%(b%)o2&ln=2ex7-dykjo-(=hk1m3dxj2#&dtz_'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Bharatha',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'AI.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'AI.wsgi.application'
# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER':'postgres',
'PASSWORD':'2208',
'HOST':'localhost'
}
}
# Password validation
# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'), )
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URl = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
here is my views.py
from django.shortcuts import render,redirect
from django.contrib.auth.models import User,auth
from django.contrib import messages
from .forms import Profile_Form
from .models import ResgisterFrom
# Create your views here.
def home(request):
return render(request,'base.html')
def signin(request):
if request.method=='POST':
username = request.POST['username']
password= request.POST['password']
user =auth.authenticate(username=username,password=password)
if user is not None:
auth.login(request,user)
return redirect("/")
else:
messages.info(request,'Invalid Credentials!')
return redirect('signin')
else:
return render(request,'signin.html')
def logout(request):
auth.logout(request)
return redirect('/')
def register(request):
# if this is a POST request we need to process the form data
template = 'register.html'
if request.method == 'POST':
# create a form instance and populate it with data from the request:
#form = Profile_Form(request.POST)
form = Profile_Form(request.POST, request.FILES)
# check whether it's valid:
if form.is_valid():
if User.objects.filter(username=form.cleaned_data['username']).exists():
return render(request, template, {
'form': form,
'error_message': 'Username already exists.'
})
elif User.objects.filter(email=form.cleaned_data['email']).exists():
return render(request, template, {
'form': form,
'error_message': 'Email already exists.'
})
elif form.cleaned_data['password'] != form.cleaned_data['password_repeat']:
return render(request, template, {
'form': form,
'error_message': 'Passwords do not match.'
})
else:
# Create the user:
user = User.objects.create_user(
form.cleaned_data['username'],
form.cleaned_data['email'],
form.cleaned_data['password']
)
user.first_name = form.cleaned_data['first_name']
user.last_name = form.cleaned_data['last_name']
user.phone_number = form.cleaned_data['phone_number']
user.photo = request.FILES['photo']
user.save()
return redirect('signin')
# No post data available, let's just show the page.
else:
form = Profile_Form()
return render(request, template, {'form': form})
class EmpImageDisplay(DetailView):
model = ResgisterFrom
template_name = 'base.html'
context_object_name = 'user'
here is my models.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class ResgisterFrom(models.Model):
username = models.CharField(max_length=200)
email = models.EmailField(max_length=200)
password = models.CharField(max_length=200)
password_repeat = models.CharField(max_length=200)
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
phone_number = models.CharField(max_length=200)
photo = models.ImageField(upload_to='images/')
def __str__(self):
return self.username
Thanks in advance
解决方案
In your settings.py
You should add /
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
MEDIA_ROOT = os.path.join(BASE_DIR,'media/')
推荐阅读
- rust - `single_use_lifetimes` 在函数中派生的结构上意味着什么以及如何解决它?
- java - 确保网络调用仅在 recyclerview 行中的每个按钮执行一次(RxJava)
- docker - docker 中的临时共享卷
- shell - 如何为 psql 输出中存在的值 grep 一个 shell 变量?
- jenkins - 如何使用 java 以编程方式更新 jenkins 作业配置并触发构建?
- java - 在 Java 中形成邮件正文
- css - 如何为 material-ui 反应组件覆盖 @media css
- angular - 模板驱动表单预选下拉值角度 6
- android-studio - 模拟器:进程以退出代码 -1073740791 (0xC0000409) 结束
- html - 将文本与列表上的缩进保持一致