Projenin yapım aşamaları
sudo apt-get install python3-virtualenv
- home da
- virtualenv velespi
- cd velespi
- source bin/activate
- virt.env aktifken home da
- pip install Pillow ****** hata verirse: #sudo apt-get install libjpeg-dev
- mkdir lyk-project
- cd lky-project
- django-admin startproject velespi
- cd velespi
- pip install Django
- python manage.py runserver
***** Dili Türkçe yapmak için settings.py da 106.satır LANGUAGE_CODE = 'tr-TR'
- velespi nin içinde yeni bir app oluşturduk
- python manage.py startapp places
-
Oluşturduğumuz app i projeye dahil etmek için settings.py de 'places' ekledik
-
model.py da database tabanlı classlar oluşturduk
-class Place -class Category -class Review -class Media
***** null=True :validation boşluğuna bakar blank=True : veri tabanı boşluğuna bakar
- Database i güncellemek için ; model oluşturduktan sonra
- python manage.py makemigrations
- python manage.py migrate
- Bir admin oluşturduk
- python manage.py createsuperuser
***** Daha basit bir admin şifresi oluşturabilmek için setting.py da
if not DEBUG:
AUTH_PASSWORD_VALIDATORS = [
- Kullanıcının görebileceği kısmı düzenlemek için :
admin.py
***** class MediaInline(admin.StackedInline): class MediaInline(admin.Inline):
- templates klasörü oluşturduk
***** settings.py da TEMPLATES = [ { 'DIRS': [os.path.join(BASE_DIR, 'templates')],
- HTML dosyaları oluşturduk
base.html index.html place.html
- urls.py da sayfaların url lerini belirttik.
***** html de veri çekerken
-{{ place.name }} : place in name ini çeker
-{{ place.description | linebreaksbr}} : place in desc. ını çeker
-{% for review in place.review_set.all %} : o place e bağlı review ları çeker.
- model.py da PlaceManager classını oluşturduk
Filtrelemeleri tek bir yerde tutmak, tekrar tekrar kulanabilmek için
girilen yerler database de olduğu halde, eğğer kullanıcı aktif değilse hem admin panelinde hemde arayüzde o kullanıcıya ait yazılar gözükmesin.
***** user__is_active : __ nokta yerine kullanılıyor. python ın özelliği.
- python manage.py startapp profiles
yeni sayfalar ekledik view.py da sayfaları açtık templates in içine bunların html lerini açtık
register.html login.html logout.html
- registration formu için forms.py oluşturduk
hazır formlar kullandık, formda gelmeyenleri meta class ının içinde oluşturduk
- python3 manage.py runserver da sessin hatası çözümü
settings.py MIDDLEWARE_CLASSES
- js le harita ekledik.
base.html ve index.html de istediğimiz yerin koordinatlarını ekliyoruz
-
haritadan tıklayarak koordinat eklemek için new_place.html oluşturduk ve marker ları belirledik.
-
html den fotoğraf ekleme sayfası yaptık new_media.html
-
Place lere fotoğraf ekleme gibi, bir de yorum ekleyebilme özelliği ekledik. new_review.html
-
Place lere beğenme özelliği eklendi, jquery kullanıldı. place.html de ajax kullanıldı.
-
$(#) şeklinde ekleyebiliyoruz.(kısa gösterimi/ jquery)
-
veya <script> şeklinde ekleyebiliyoruz.
-
beğenmek için başka bir sayfaya gidip gelmeyi engellemek için bu yöntemi kullandık
- login olmayanlar için , view.py da
@login_required(login_url='login') eklendi