· 8 years ago · Jan 17, 2018, 01:52 AM
1from django.shortcuts import render
2from ImgApp.forms import ImageForm
3from ImgApp.models import ImageModel
4from django.http import HttpResponseRedirect
5
6
7def upload(request):
8 if request.method == "POST":
9 form = ImageForm(request.POST, request.FILES)
10 if form.is_valid():
11 form.save()
12 return HttpResponseRedirect('ImgApp:home')
13 else:
14 form = ImageForm()
15 con = {"var_form": form}
16 return render(request, 'upload.html', con)
17
18class ImageModel(models.Model):
19 name = models.CharField(max_length=44)
20 image = models.ImageField(upload_to='media/',null=True)
21
22 def __str__(self):
23 return self.name
24
25from django import forms
26from ImgApp.models import ImageModel
27
28class ImageForm(forms.ModelForm):
29 class Meta:
30 model = ImageModel
31 fields = "__all__"
32
33import os
34
35# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
36BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
37
38
39# Quick-start development settings - unsuitable for production
40# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/
41
42# SECURITY WARNING: keep the secret key used in production secret!
43SECRET_KEY = 'e3d)3&+&3!xkh_zz_l@uc9ly8uh@wio1g+zh59_mt&v-0xyubp'
44
45# SECURITY WARNING: don't run with debug turned on in production!
46DEBUG = True
47
48ALLOWED_HOSTS = []
49
50
51# Application definition
52
53INSTALLED_APPS = [
54 'django.contrib.admin',
55 'django.contrib.auth',
56 'django.contrib.contenttypes',
57 'django.contrib.sessions',
58 'django.contrib.messages',
59 'django.contrib.staticfiles',
60 'debug_toolbar',
61 'ImgApp',
62]
63
64MIDDLEWARE = [
65 'django.middleware.security.SecurityMiddleware',
66 'django.contrib.sessions.middleware.SessionMiddleware',
67 'django.middleware.common.CommonMiddleware',
68 'django.middleware.csrf.CsrfViewMiddleware',
69 'django.contrib.auth.middleware.AuthenticationMiddleware',
70 'django.contrib.messages.middleware.MessageMiddleware',
71 'django.middleware.clickjacking.XFrameOptionsMiddleware',
72 'debug_toolbar.middleware.DebugToolbarMiddleware',
73]
74
75ROOT_URLCONF = 'ImgProject.urls'
76
77TEMPLATES = [
78 {
79 'BACKEND': 'django.template.backends.django.DjangoTemplates',
80 'DIRS': [os.path.join(BASE_DIR,'templates')],
81 'APP_DIRS': True,
82 'OPTIONS': {
83 'context_processors': [
84 'django.template.context_processors.debug',
85 'django.template.context_processors.request',
86 'django.contrib.auth.context_processors.auth',
87 'django.contrib.messages.context_processors.messages',
88 'django.template.context_processors.media',
89 ],
90 },
91 },
92]
93
94WSGI_APPLICATION = 'ImgProject.wsgi.application'
95
96
97# Database
98# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
99
100DATABASES = {
101 'default': {
102 'ENGINE': 'django.db.backends.sqlite3',
103 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
104 }
105}
106
107
108# Password validation
109# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
110
111AUTH_PASSWORD_VALIDATORS = [
112 {
113 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
114 },
115 {
116 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
117 },
118 {
119 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
120 },
121 {
122 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
123 },
124]
125
126
127# Internationalization
128# https://docs.djangoproject.com/en/1.11/topics/i18n/
129
130LANGUAGE_CODE = 'en-us'
131
132TIME_ZONE = 'UTC'
133
134USE_I18N = True
135
136USE_L10N = True
137
138USE_TZ = True
139
140
141# Static files (CSS, JavaScript, Images)
142# https://docs.djangoproject.com/en/1.11/howto/static-files/
143
144STATIC_URL = '/static/'
145
146STATIC_DIR = os.path.join(BASE_DIR,'static')
147
148STATICFILES_DIR = [
149 os.path.join(BASE_DIR,'static')
150]
151
152MEDIA_ROOT = os.path.join(BASE_DIR,'media')
153MEDIA_URL = "/media/"
154
155INTERNAL_IPS = ['127.0.0.1']
156
157from django.conf.urls import url, include
158from django.contrib import admin
159from django.conf.urls.static import static
160from django.conf import settings
161from ImgApp import views
162
163
164urlpatterns = [
165 url(r'^admin/', admin.site.urls),
166 url(r'^app/',include('ImgApp.urls')),
167 url(r'^$',views.home),
168 url(r'^upload/$',views.upload),
169]
170
171if settings.DEBUG:
172 import debug_toolbar
173
174 urlpatterns = [
175 url(r'^__debug__/', include(debug_toolbar.urls)),
176 ] + urlpatterns
177
178 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
179
180<form method="post" enctype="multipart/form-data" action="{% url 'ImgApp:index' %}">
181 {% csrf_token %}
182 {{var_form.as_p}}
183 <input type="submit" value="upload" class="btn btn-primary">
184 </form>
185
186<!DOCTYPE html>
187{% load static %}
188
189........
190
191{% if var_db %}
192 {% for img in var_db %}
193 <b>Name:</b>{{img.name}}
194 <br>
195 <img src="{{MEDIA_URL}}/{{img.image}}" alt="Image here" height="200" width="300">
196 {% endfor %}
197 {% else %}
198 <p>No Images uploaded yet</p>
199 <p>Fill this lonely area with happiness</p>
200 {% endif %}