100 lines
3.2 KiB
Markdown
100 lines
3.2 KiB
Markdown
# lostplaces-backend
|
|
|
|
lostplaces-backend is a django (3.x) based webproject. It once wants to become a software which allows a group of urban explorers to manage, document and share the locations of lost places while not exposing too much / any information to the public.
|
|
|
|
The software is currently in early development status, neither scope, datalmodel(s) nor features are finalized yet. Therefore we would not recommend to download or install this piece of software anywhere - except your local django dev server.
|
|
|
|
## Dependencies
|
|
Right now it depends on the following non-core Python 3 libraries. These can be installed using the package manager of your distribution or into the venv locally.
|
|
|
|
* [django](https://www.djangoproject.com/) django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
|
|
* [easy-thumbnails](https://github.com/SmileyChris/easy-thumbnails) A powerful, yet easy to implement thumbnailing application for Django 1.11+
|
|
* [image](https://github.com/francescortiz/image) Image cropping for djanbgo
|
|
* [django-widget-tweaks](https://github.com/jazzband/django-widget-tweaks) Tweak the form field rendering in templates, not in python-level form definitions.
|
|
|
|
### Setting up a (pipenv) virtual environment for development
|
|
|
|
After having obtained the repository contents (either via .zip download or git clone), you can easily setup a pipenv virtual environment. The repo provides a Pipfile for easy dependency management that does not mess with your system.
|
|
|
|
```
|
|
$ cd lostplaces-backend
|
|
$ pipenv install
|
|
$ pipenv shell
|
|
(lostplaces-backend) $ lostplaces/manage.py migrate
|
|
(lostplaces-backend) $ lostplaces/manage.py createsuperuser
|
|
(lostplaces-backend) $ lostplaces/manage.py runserver
|
|
```
|
|
|
|
### Returning to the venv
|
|
```
|
|
$ cd lostplaces-backend
|
|
$ pipenv shell
|
|
(lostplaces-backend) $ lostplaces/manage.py runserver
|
|
```
|
|
|
|
Visit: [admin](http://localhost:8000/admin) for administrative backend or
|
|
[frontend](http://localhost:8000/)
|
|
|
|
## Installing lostplaces
|
|
|
|
### Install dependencies
|
|
Python3, Django3, easy-thumbnails, image, django-widget-tweaks
|
|
```
|
|
pip install django easy-thumbnails image django-widget-tweaks
|
|
```
|
|
Or, if you use pipenv
|
|
```
|
|
pipenv install
|
|
```
|
|
|
|
|
|
### Add 'lostplaces_app' to your INSTALLED_APPS setting like this
|
|
|
|
```
|
|
INSTALLED_APPS = [
|
|
...
|
|
'lostplaces_app',
|
|
'easy_thumbnails',
|
|
'widget_tweaks',
|
|
]
|
|
```
|
|
|
|
### Add this configuration to your settings.py
|
|
|
|
```
|
|
from django.urls import reverse_lazy
|
|
...
|
|
AUTH_USER_MODEL = 'lostplaces_app.Explorer'
|
|
|
|
LOGIN_URL = reverse_lazy('login')
|
|
|
|
THUMBNAIL_ALIASES = {
|
|
'': {
|
|
'thumbnail': {'size': (300, 300), 'crop': False},
|
|
'hero': {'size': (700, 700), 'crop': False},
|
|
'large': {'size': (1920, 1920), 'crop': False},
|
|
},
|
|
}
|
|
```
|
|
|
|
|
|
### Include the lostplaces URLconf in your project urls.py like this
|
|
|
|
```
|
|
from django.urls import path, include
|
|
...
|
|
urlpatterns = [
|
|
...
|
|
path('lostplaces/', include('lostplaces_app.urls')),
|
|
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
|
```
|
|
|
|
Run ``python manage.py migrate`` to create the lost places models.
|
|
|
|
Start the development server and visit http://127.0.0.1:8000/admin/
|
|
|
|
Visit http://127.0.0.1:8000/lostplaces/ to CRUD lost places.
|
|
|
|
|
|
Happy developing ;-)
|