/django_velespi

Django projesi

Primary LanguagePythonMIT LicenseMIT

Projenin yapım aşamaları

sudo apt-get install python3-virtualenv

  1. home da
  • virtualenv velespi
  • cd velespi
  • source bin/activate
  1. 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'

  1. velespi nin içinde yeni bir app oluşturduk
  • python manage.py startapp places
  1. Oluşturduğumuz app i projeye dahil etmek için settings.py de 'places' ekledik

  2. 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

  1. Database i güncellemek için ; model oluşturduktan sonra
  • python manage.py makemigrations
  • python manage.py migrate
  1. 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 = [
  1. Kullanıcının görebileceği kısmı düzenlemek için :

admin.py

***** class MediaInline(admin.StackedInline): class MediaInline(admin.Inline):

  1. templates klasörü oluşturduk

***** settings.py da TEMPLATES = [ { 'DIRS': [os.path.join(BASE_DIR, 'templates')],

  1. HTML dosyaları oluşturduk

base.html index.html place.html

  1. 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.

  1. 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.

  1. 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

  1. registration formu için forms.py oluşturduk

hazır formlar kullandık, formda gelmeyenleri meta class ının içinde oluşturduk

  1. python3 manage.py runserver da sessin hatası çözümü

settings.py MIDDLEWARE_CLASSES

  1. js le harita ekledik.

base.html ve index.html de istediğimiz yerin koordinatlarını ekliyoruz

  1. haritadan tıklayarak koordinat eklemek için new_place.html oluşturduk ve marker ları belirledik.

  2. html den fotoğraf ekleme sayfası yaptık new_media.html

  3. Place lere fotoğraf ekleme gibi, bir de yorum ekleyebilme özelliği ekledik. new_review.html

  4. 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

  1. login olmayanlar için , view.py da

@login_required(login_url='login') eklendi