Kültürlü PenguenSeo Blog'u
Sigarayı bırakmaya karar verdiğin akşamın ertesi sabahında rekor bir performansla sigara içmek ❤️


Django’da Merhaba Dünya Uygulamasını Yazıyoruz!

131 Okunma


Merhaba Kültürlü Penguen Okurları,

İlk olarak ayarlarımızı yapacağız. Ayarlarımızı yaptıktan sonra fonksiyon sistemine geçeceğiz. Ardından URL’leri düzenleyeceğiz ve aynı PHP’deki gibi URL’den GET metoduyla bilgi alacağız. Bunun üzerine mesela blog sisteminde olduğu gibi URL’den aldığımız veriyi işleyeceğiz. Şimdi başlayalım. Öncelikle projemizin içerisinden settings.py dosyasını bulalım. Bu dosya şuna benzer olacaktır.

# Django settings for ilkProjem project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
ALLOWED_HOSTS = []

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# In a Windows environment this must be set to your system time zone.
TIME_ZONE = 'America/Chicago'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True

# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = ''

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
STATIC_ROOT = ''

# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'

# Additional locations of static files
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.
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

# Make this unique, and don't share it with anybody.
SECRET_KEY = 'ta=bk-$^8!x)+x*10zjf=q^stg19h%%&ub5#vv3rwk7&ryl3^z'

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'ilkProjem.urls'

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'ilkProjem.wsgi.application'

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

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',
)

# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

Böyle bir dosyamız olacak. Bu dosyamızın birkaç bölümünü değiştirmeliyiz. Öncelikle saat kısmını düzeltelim.

TIME_ZONE = 'America/Chicago'

Bunu kendi zaman dilimimize ayarlayalım.

TIME_ZONE = 'Europe/Istanbul'

Bunu ayarladıktan sonra dili ayarlamamız lazım. LANGUAGE_CODE değişkenini tr-TR olarak değiştirmemiz gerekiyor.

LANGUAGE_CODE = 'tr-TR'

Basit ayarlamalarımız bunlar. settings.py dosyasını dikkatli şekilde okuyarak diğer ayarları siz yapabilirsiniz. Ama en temel ayarlar bunlardır.

Merhaba Dünya

Her şey ‘Merhaba Dünya!’ ile başlamış olabilir aslında. Belki Adem ve Havva da cennetten dünyaya geldiklerinde de bu söz öbeğini kullanmış olabilirler.Kim bilir!

İlk merhaba dünya uygulamamız için öncelikle views.py dosyamızı açmalıyız. Bu dosya istekleri işliyor. Fonksiyonlarımızı buraya yazarak işimizi hallediyoruz.  Eğer dosya yoksa oluşturun :)

İlk fonksiyonumuzu yazmaya hazırsak hemen yazalım.

Bu dosya views.py dosyası olacak.

#-*- coding: utf-8 -*-
from django.http import *

def MerhabaDunya(request):
    merhaba = '<strong style="color:red">Merhaba</strong> dünya! <br>'
    user = 'Kullandığınız tarayıcının gönderdiği User-Agent:<br>%s'% request.META['HTTP_USER_AGENT']

    return HttpResponse(merhaba+user)

Şimdi urls.py dosyamızı açıyoruz. Bu kısım önemli özellikle ‘Merhaba Dünya’mızı görmek istiyorsak. urls.py’yi açıp kopyalayın.

from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

import views

urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'ilkProjem.views.home', name='home'),
    #url(r'^ilkProjem/', include('ilkProjem.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'^merhaba-dunya/$', views.MerhabaDunya)
)

Gördüğünüz gibi daha demin yazdığımız views.py’yi import ettik ve patterns’e bir adet eleman ekledik. Elemanımızda url fonksiyonunu kullandık ve yapılacak işlem için views.MerhabaDunya fonksiyonunu kullandık ki bu fonksiyonu önceden yazdığımız fonksiyondu. Artık http://127.0.0.1:8000/merhaba-dunya/ adresine girerek uygulamamıza bakabiliriz.

User-Agent değerini de request.META[‘HTTP_USER_AGENT’] ile halletmiş olduk. Sonunda Django ile de dünyaya bir ‘Merhaba!’ dedik!


avatarresmi

Ulan şu zenginler gibi kafamız bozulduğunda son model arabamızı alıp deniz kenarında efkarlanamadık be varsa yoksa kapıyı çarp yatağa atla

- Twitter - Facebook


Bu yazıda 2 yorum var!

  1. buraya kadar geldim. setting.py dosyasını idle ile açtım. tr-TR yapmama rağmen Türkçe karekterleri göstermedi, neyse önemli değil bir şekilde hallederim, Buraya kadar gediğime çok sevindim.
    Kafamdaki bir çok şey yoluna oturdu, zannedersem artık sizi fazla üzmem. çok sağolun hocam,teşekkürler.

    • Onu tr-TR yapmamızın temel sebebi admin panelini Türkçe kullanabilmek.
      Yoksa Türkçe karakteri siz “merhaba dünya!” diyerek yapacaksınız. Varsayılan olarak utf-8 kodlanır.

Cevap Yaz

Görüşlerinizi bizimle paylaşmanız bizi çok mutlu edecektir. Bir yorum da siz bırakın.
Blogların beslenme şekli yorumlardır.