Responsive Django Image Gallery Site Sample optimized for performance and mobile devices
This sample contains a Django 2.0.x Image Gallery Site. The album images are optimized for performance. The Django Photo Gallery Sample is responsive and mobile/device friendly.
Albums can be created from the Django admin panel where one zip file with all the images should be selected from the PC. The Django Photo Gallery will resize the images to improve the picute load times and will also create thumbnail for every image in the zip.
Solution | Author(s) |
---|---|
Django Photo Gallery | Velin Georgiev (@VelinGeorgiev) |
Version | Date | Comments |
---|---|---|
0.0.1 | April 30, 2017 | Initial commit |
0.0.2 | April 06, 2018 | Updated to python 3.6 and Django 2.0.4 |
0.0.3 | December 31, 2018 | Updated to Django 2.1.4 and Django-material 1.4.3 |
0.0.4 | July 19, 2019 | Updated to Django 2.2.3 |
THIS CODE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
virtualenv env
(requires virtualenv), Mac virtualenv yourenv -p python3.6
source env/bin/activate
, Windows: call env/Scripts/activate.bat
, Mac source env/bin/activate
django_photo_gallery
folder using cd django_photo_gallery
pip install -r requirements.txt
or pip3 install -r requirements.txt
depending on your python installation.pip install ../whl/Pillow-5.0.0-cp36-none-win32.whl
(if you are not using python 3.6 32 bit then download the Pillow wheel for your python version).python manage.py migrate
or python3 manage.py migrate
python manage.py runserver
or python3 manage.py runserver
depending on your python installationThis Sample illustrates the following concepts on top of the Django Framework:
The picture size and quality can be controlled programatically from the models.py. Just change the processors. For more information see django-imagekit.
class AlbumImage(models.Model):
image = ProcessedImageField(upload_to='albums', processors=[ResizeToFit(1280)], format='JPEG', options={'quality': 70})
thumb = ProcessedImageField(upload_to='albums', processors=[ResizeToFit(300)], format='JPEG', options={'quality': 80})
...
To cleanup the sample data delete the sql lite database and the media folder files. Create new database and run the sample again.
This is sample. I decided to keep it simple and let the validation to be added by you.
Star if you like it :)