29 Ağustos 2013 Perşembe

Django os.path proje klasörü ve bi üst klasör.

Djangoda static file ve template çalıştırmak için settings.py da aşağıdaki değişiklikleri yapın.
 
settings.py

En başa üc kodu ekliyoruz.


import os.path
import sys
PROJECT_ROOT = os.path.dirname(__file__)
 
 
70. 
STATIC_URL = '/static/'  
 
 
73. 
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__), 'templates/static'),
    
) 

113.

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__), 'templates'),
)

Django shell ve Python-twitter kullanımı ? Python Twitter nedir ?

Python kullanıcılarının twitter api kullanarak  https://dev.twitter.com/docs/api/1.1 buradaki rest api isteklernin hepsini yapmaya yarar . Burun python-twitter resmi sayfası http://code.google.com/p/python-twitter

Şimdi dosyayı indirdiğimizde githubtan indirebilirsiniz : https://github.com/bear/python-twitter

Öncelikle virtualenv kullanıyorsanız bunları yapın kullanmıyorsanız burakı geçin.

virtualenv venv
.  venv/bin/activate

virtualenvi aktif ettikten sonra

git clone git://github.com/bear/python-twitter.git
cd python-twitter 

indirip giriş yaptık.

Çalışması için gerekli olan eklentileri kurmak gerekli 



AMA bunlarla uğraşmanıza gerek ok python-twitter kalsörüne cd ile giriş yaptıysanız.

pip install -r requirements.txt
pip install django
 
Gerekli eklentileri indirir..
Bu satırlar eklentiyi kurar dikkat edin bu kodların çalışması için python-twitter klasörünün
içinde olmanız gerekir aksi taktirde hata verecektir. çünkü python-twitter içine bir 
bakın setup.py diye dosya var o dosyayı kuruyor. 
 
python setup.py build
$ python setup.py install 

$ python setup.py test
 
ile test edebilirsiniz.
 
şimdi bir django  projesi oluşturalım şimdilik sadece shell ile retweet ve favori yapacağım.


django-admin.py startproject mysite
cd mysite
python manage.py shell

diyerek python shell bölümüne giriş yaptık.

import simplejson
import httplib2
import twitter

api = twitter.Api(consumer_key='consumer_key', 
                         consumer_secret='consumer_secret', 
                         access_token_key='access_token', 
                         access_token_secret='access_token_secret')

http://dev.twitter.com 'a girip kayıt olup create new app 'ten yeni bi app oluştutup consumer_secret ve
consumer_secret i yazıp kendi tokenlerinizida yazınca auth olmuş oluyorsunuz..

ARTIK TWİTTER İLE GİRİŞ YAPMIŞ SAYILIYORSUNUZ.

Statü güncelleme :

  >>> status = api.PostUpdate('I love python-twitter!')
  >>> print status.text
  I love python-twitter!
 
Retweet yapma ve Favori yapma 
 
>> favorite = api.CreateFavorite(api, 320911534362611712)
 
favorite = api.CreateFavorite(self, id) oalrak geçiyor self bölümüne auth yaptığınız değişken
id bölümüne tweet id gelecek.
 
Python ile retwet yapmak :
 
retweet = api.PostRetweet(362263100612808706)   
direk id yazarak retweet yaptırabiliyoruz.
 
Diğer tüm olaylar içinde :  http://inventwithpython.com/twitter.html

Alt yapıları burada..

En yakın zamanda django ile web sayfalarında nasıl kullanıldığını gösteren bi yazı yazacağım.
 
Ozamana kadar takipte kalın http://twitter.com/yasinaktimur
 

 

22 Ağustos 2013 Perşembe

virtualenv nedir ?

İşimde ve kendi projelerimde genelde Django kullanıyorum. Django ile yazılım geliştirirken bir çok üçüncü parti uygulama kurmak gerekebiliyor. Örneğin migration işlemleri için south kurmak gerekiyor. Diyelim ubuntu kullanıyorsunuz ve south ubuntu deposunda var. Veya pip, easy_install gibi python paket sistemleri ile kurulum yapıyorsunuz. Bu durumda bu paketler sistemin geneline kuruluyor. Bu durumun ne gibi sıkıntıları var derseniz, projeye özel değişik versiyonda kütüphaneleri denemek zorlaşıyor. İşte tam bu sırada virtualenv gibi harika bir araç yardımımıza koşuyor. virtualenv kısaca bize özel bir python alanı yaratıyor ve orada yaptığımız kurulumların sadece orada geçerli olmasını sağlıyor. Şimdi ubuntu'da adım adım virtualenv kurulumu ve kullanımını inceleyelim.
Öncesinde sistemimizde easy_install ve pip kurulu değilse bu işlemleri halledelim. Terminalde aşağıdaki komutu vererek paket kurulumlarımızı yapalım.
$ sudo apt-get install python-setuptools python-dev build-essential
Evet kurmamız gereken .deb paketleri tamam. Şimdi pip kurmamız gerekiyor. İsterseniz virtualenv ile easy_install'ı kullanabilirsiniz. Ancak ben pip kullanmayı daha çok seviyorum.  ![Linkler için yazının bulunduğu siteye gidiniz.]  neden pip'in daha güzel olduğunu açıklamışlar. Aşağıdaki komutu işletelim.
$ sudo easy_install pip
pip kurulduğuna göre artık virtualenv'yi pip aracılığıyla kurabiliriz.
$ sudo pip install virtualenv
virtualenv sisteme kuruldu ve sanal python ortamları yaratmamız için bir engelimiz kalmadı. :) Bir virtual environment (sanal ortam) yaratmak için aşağıdaki gibi bir komut işletmeniz gerekiyor.
$ virtualenv --no-site-packages --distribute example
New python executable in example/bin/python
Installing distribute....................................................................................................................................................................................done.
New python executable in example/bin/pythonInstalling distribute....................................................................................................................................................................................done.
Buradaki example ortamımızın ismi. Bunu dilediğiniz gibi verebilirsiniz. Python ortamınız bu dizin içinde şekillenecek. İsterseniz path verebilirsiniz. Benim önerim python_environments gibi bir dizin açıp tüm ortamlarınızı burada bulundurmanız. Düzen iyidir :)
virtualenv'ı kurduk ancak onu aktif etmeden kullanmaya başlayamıyoruz. Aktif etmek için aşağıdaki yolu izliyoruz.
$ source example/bin/active
Bu komuttan sonra imlecin olduğu bölümün değiştiğini farkedersiniz. Genelde sanal ortamın adı yazar. Bir sorun yoksa artık aktif halde bir sanal ortamımız var. Sanal ortamdan çıkmak için diğer bir deyimle deaktif etmek isterseniz;
(example)~$ deactivate
Python sanal ortamından çıkmış oluyorsunuz böylece. Şimdi sanal ortamımızda istediğimiz paketleri kuralım. Örnek olması açısından Django üzerinden gidelim istiyorum. Django kurmak için pip komutunu aktif edilmiş sanal ortamımız içindeyken yazıyoruz.
(example)~$ pip install Django
Downloading/unpacking Django
Downloading Django-1.3.tar.gz (6.5Mb): 6.5Mb downloaded
Running setup.py egg_info for package Django
Installing collected packages: Django
Running setup.py install for Django
changing mode of build/scripts-2.6/django-admin.py from 644 to 755
changing mode of /home/cihann/example/bin/django-admin.py to 755
Successfully installed Django
Cleaning up...
Django başarıyla kuruldu. Şu an Django'nun sadece example sanal ortamında kurulu olduğunu hatırlatalım. Ayrıca farkettiyseniz kurulum yaparken sudo ile yetki almaya vs. ihtiyaç duymadık. Sistem geneline kurulmadığı için bir yetki alma gereği duymuyor. Yazı biraz uzayacak ama virtualenv ile ufak bir Django uygulaması başlatalım istiyorum. Böylece requirements.txt denen dosya ile paket yönetiminede girmiş oluruz. Django artık sanal ortamda kurulu olduğuna göre şu komutu işletiyoruz.
(example)~$ django-admin.py startproject example_django
Bu komutla bir Django projesi oluşturmuş olduk. Artık sanal ortamda pip ile paket kurmayı biliyoruz. Ancak bir çok paket kurmak istediğimizde bunları tek tek kurmak yerine paket listesini çıkarıp bunu bir dosyaya yazıp oradan kurulum ve yönetimi yapabiliriz. Bu dosyanın adı requirements.txt. Django projemizin içine gidelim ve requirements.txt adında bir dosya oluşturalım.
(example)~$ cd example_django/
(example)~/example_django$ touch requirements.txt
requirements.txt dosyamızın içine istediğimiz paketleri yazalım. Örnek olarak şöyle bir dosya ile başlayabiliriz.
South==0.7.3
django-taggit==0.9.2
Markdown==2.0.3
Evet requirements.txt dosyamız hazır. Şimdi nasıl bu paketleri bu dosya üzerinden kuracağımızı görelim.
(example)~/example_django$ pip install -r requirements.txt
Downloading/unpacking Markdown==2.0.3 (from -r requirements.txt (line 3))
Downloading Markdown-2.0.3.tar.gz (71Kb): 71Kb downloaded
Running setup.py egg_info for package Markdown
Downloading/unpacking django-taggit==0.9.2 (from -r requirements.txt (line 2))
Downloading django-taggit-0.9.2.tar.gz
Running setup.py egg_info for package django-taggit
Downloading/unpacking South==0.7.3 (from -r requirements.txt (line 1))
Downloading South-0.7.3.tar.gz (70Kb): 70Kb downloaded
Running setup.py egg_info for package South
Installing collected packages: django-taggit, Markdown, South
Running setup.py install for django-taggit
Running setup.py install for Markdown
changing mode of build/scripts-2.6/markdown from 644 to 755
changing mode of /home/cihann/example/bin/markdown to 755
Running setup.py install for South
Successfully installed django-taggit Markdown South
Cleaning up...
Süper! Paketler sanal ortamımıza kuruldu. virtualenv ile gördüğünüz üzere çok rahat bir Python çalışma ortamı kurulabiliyor. Geliştirdiğiniz uygulamayı başka bir sanal ortama taşıyıp orada farklı sürüm kütüphanelerle deneyebilirsiniz. Sanal ortamla işiniz bittiğinde onu silebilirsiniz.
Mutlu kodlamalar :)