Django ve Socket.io ile Gerçek Zamanlı Uygulamalar – 2. Bölüm

Merhabalar,

Sunucu tarafında Django kullanacağımızdan bahsetmiştik. Bu yazida Django ile Merhaba Dünya uygulaması yapacağız. İlk iş olarak virtualenv ile bir çalışma ortamı yaratalım ve buraya bir django projesi yaratalım.

  • Sanal ortamımızı oluşturalım
  • –no-site-packages parametresi ile sistemimizde kurulu olan python kütüphanelerini bu yeni ortama aktarmamaktadır. Kurulum testleri için oldukça kullanışlı bir araç, ayrıntılarına bakmanızı tavsiye ederim.

virtualenv test --no-site-packages
cd test
source bin/activate
# yeni ortamımız boş olarak kullanıma hazır.
# Djangoyu kuralım.
pip install django==1.5.1

  • Django projemizi oluşturalım.

django-admin.py startproject socketIO_Test
  • Django için bir uygulama oluşturalım

django-admin.py startapp web

mkdir web/template
mkdir web/static

settings.py
######################################################################

  • Şimdi settings.py dosyamızı güncelleyelim. Dosyanın en üstüne aşağıdaki değişkenini ekleyelim.

import os
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) + '/..'

Bunu yapmamızdaki sebep relative path yerine absolute path ile tanımlarımızı yapmamız gerekmesidir.

  • STATICFILES_DIRS değişkenini güncelleyelim.

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(PROJECT_ROOT, 'web/static'),
)
  • TEMPLATE_DIRS değişkeni

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.
    'web/templates'
)
  • INSTALLED_APPS değişkenine oluşturduğumuz web uygulamasını ekliyoruz.

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'web',
)

######################################################################

url.py
######################################################################

  • Şimdi url.py dosyasını güncelleyip bir hello world uygulaması yapalım. urlpatterns değişkenini güncelleyelim.

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'helloworld.views.home', name='home'),
    # url(r'^helloworld/', include('helloworld.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),

    url(r'^$', 'web.views.index')
)

######################################################################

  • Şimdi template dosyamızı oluşturalım.

web/templates/index.html

######################################################################

<html>
<head></head>
<body>
{{hello_text}}
</body>
</html>

######################################################################
  • View kısmını oluşturalım.

web/views.py
######################################################################
# Create your views here.
from django.shortcuts import render_to_response

def index(request):
    return render_to_response('index.html',{'hello_text':'Merhaba Dünya'})

######################################################################
  • Şimdi sırada sunucumuzu çalıştırmak var. Bunun için manage.py betiğini kullanıyoruz.

python manage.py runserver

http://127.0.0.1:8000/ adresine giriş yaptığınızda Merhaba Dünya yazısını göreceksiniz.

Şimdi sırada gevent ve gevent-socketio kurulumu var.

Tagged with: ,
Posted in yakindanegitim

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
%d bloggers like this: