Tampilkan postingan dengan label Web Development. Tampilkan semua postingan
Tampilkan postingan dengan label Web Development. Tampilkan semua postingan
Selamat sore sahabat Whitecyber di seluruh tanah air, sudah lama ya tidak bersharing disini. kali ini kami akan share Plug-in di wordpress yang sering membuat server share hosting di Indonesia menjadi berat, dan akhirnya fihak penyedia layanan hosting memblokir plugin wordpress tersebut.



Berikut ini daftar plug-in yang selalu kena banned fihak ISP atau Penyedia Hosting di Indonesia :

Wp-post view
Wordpress stats
Plugin stats. Saat ini status plugin sudah obsolete.
bStat
Plugin -related post
Yet Another Related Posts Plugin
Plugin Firestats
SEO SearchTerms Tagging 2
StatPress Reloaded. Saat ini status plugin sudah obsolete.
Advanced Random Posts. Saat ini status plugin sudah obsolete.
Similar Posts. Saat ini status plugin sudah obsolete.
Posts By Tag
Random Posts Widget. Saat ini status plugin sudah obsolete.
Broken Link Checker
StatPress. Saat ini status plugin sudah obsolete.
WP Related Posts
rss fetching
SEO - automatic link
rss feed
wp robot
wp uniq
SEO Auto Links & Related Posts

Biasanya fihak Hosting langsung membanned plug-in tersebut, tanpa bilang kepada pemilik website. Dan saat ditemui website sudah tidak aktif lagi pluginnya.

Bagi sahabat yang memiliki info hosting yang bisa diberi plugin tersebut dapat menginfokannya dibawah sini.

Fungsi Cloudflare adalah memberikan kemudahan bagi pemilik website agar cepat dan aman.
Cloudflare merupakan web performance and security company, dimana pada kesempatan ini mengumumkan kerjasama Cloudflare dengan KunciHost.
Jika sebelumnya anda belum pernah mendengar CloudFlare, Point sederhana kami adalah: kami akan membuat situs web apapun dua kali lebih cepat dan melindunginya dari berbagai ancaman web.
Saat ini, ratusan ribu website, mulai dari blog pribadi hingga situs e-commerce ke websites of Fortune 500 companies – pemerintah daerah menggunakan CloudFlare  untuk membuat situs mereka lebih cepat dan lebih aman. Dengan daya lebih dari 28 miliar tampilan halaman per bulan-lebih dari Amazon.com, Wikipedia, Twitter, Zynga dan AOL dikombinasikan-dan hampir 25% dari populasi internet secara teratur melewati jaringan Cloudflare.
Kinerja Web yang Cepat (Faster web performance)
CloudFlare dirancang untuk menangani hosting dengan platform besar dan membuatnya lebih baik.
Ketika Anda mendaftar untuk CloudFlare, kami mulai routing traffic Anda ke data center terdekat.
Sebagai traffic yang melewati data center, kami menentukan bagian mana dari situs web Anda yang statis vs dinamis. Bagian-bagian statis adalah cache pada server kami untuk jangka waktu singkat, biasanya kurang dari 2 jam sebelum kita memeriksa untuk melihat apakah mereka telah diperbarui. Dengan secara otomatis memindahkan bagian statis dari situs Anda lebih dekat dengan pengunjung Anda, kinerja keseluruhan situs Anda meningkatkan secara signifikan.
Caching smart system CloudFlare juga berarti Anda menghemat bandwidth, yang berarti menghemat uang, dan mengurangi beban pada server Anda, yang berarti aplikasi web Anda akan berjalan lebih cepat dan lebih efisien dari sebelumnya. Rata-rata, pelanggan CloudFlare melihat penurunan 60% dalam penggunaan bandwidth, dan 65% dalam permintaan total untuk server mereka. Efek keseluruhan adalah bahwa CloudFlare biasanya akan memotong waktu membuka untuk halaman di situs Anda dengan 50%, yang berarti lebih tinggi dan keterlibatan pengunjung lebih nyaman.
Kemanan web (Broad web security)
Selama 2011, CloudFlare mengidentifikasi peningkatan 700% distributed denial of service attacks (DDoS) kita melacak di Internet (lihat tabel di bawah). Sebagai serangan seperti peningkatan ini, CloudFlare sedang melakukan langkah untuk melindungi situs.
CloudFlare’s security protections menawarkan berbagai perlindungan terhadap serangan seperti DDoS, hacking atau spam yang dikirim ke blog atau form komentar. Apakah dasar yang kuat tentang pendekatan kami adalah bahwa sistem dengan sangat cerdas mendapatkan situs yang lebih yang merupakan bagian dari komunitas CloudFlare. Kami menganalisa pola traffic dari ratusan jutaan pengunjung secara real time dan menyesuaikan sistem keamanan untuk memastikan melalui traffic yang baik dan traffic yang buruk akan dihentikan.
jutaan pengunjung secara real time dan menyesuaikan sistem keamanan untuk memastikan lalu lintas yang baik akan melalui lalu lintas yang buruk dan dihentikan.
Dalam waktu, tujuan kami tidak kekurangan membuat serangan terhadap situs-situs peninggalan sejarah. Dan, mengingat skala dan miliaran serangan yang berbeda yang kita lihat dan beradaptasi dengan setiap tahun, kami sudah dalam perjalanan kami untuk mencapai yang untuk situs di jaringan CloudFlare.
Registrasi
Semua Website bisa menggunakan CloudFlare. Dengan integrasi KunciHost, kami memberikan kemudahan setting CloudFlare “1 click easy” melalui Dashboarh Cpanel KunciHost. Anda cukup mencari Icon CloudFlare, pilih domain yang ingin anda aktifkan, dan klik awan yang berwarna oranye.
Dengan harga yang terjangkau dan paket yang ditawarkan melalui KunciHost.com adalah GRATIS!!!
Selain itu kami tidak pernah mengenakan biaya tambahan untuk space dan bandwidth.
Bagi anda yang ingin menggunakan CloudFlare’s, telah disiapkan pula paket PRO seharga $20/Month.
Plan ‘Pro’ sudah termasuk fitur yang terdapat pada versi FREE, serta fitur tambahan seperti SSL, application firewall and faster analytics.
Jika Anda sedang mencari situs web dengan speed yang cepat, lebih aman, sebuah pilihan yang tepat bergabung melalui kuncihost.com, kemudian langkah selanjutnya adalah join dengan CloudFlare community.
Berikut tips panduan setting Custom Domain di Blogspot [bagi pengguna SPANEL]
  • login ke blogspot Anda http://www.blogspot.com
  • pada halaman awal Dashboard pilih nama blog yang ingin ditambahkan nama domain anda, lalu pilih menu Setelan > Dasar
Blogst.png

  • pilih tab 'Penerbitan' dan klik tulisan berwarna biru yaitu
+ Tambahkan domain khusus,

Blogst1.jpg
  • Masukkan nama domain yang anda miliki,
Blogsp2.png

  • jika sudah anda akan mendapatkan 2 buah cname dari blogspot yang mana cname tersebut nantinya harus anda tambahkan pada akun hosting spanel anda.
  • Selanjutnya adalah set CNAME untuk www (atau nama subdomain) dan CNAME kedua yang didapatkan pada akun blogspot Anda untuk mengarah ke ghs.google.com di DNS Manager domain Anda di SPANEL
  • login ke SPANEL
  • buka menu Kelola Domain dan DNS
  • pilih Sunting DNS
  • di bagian Tambah record CNAME, isikan seperti berikut:
Host: www (atau bila Anda menggunakan subdomain isikan nama subdomain Anda, misal: blog) Nama asli: ghs.google.com
  • untuk set CNAME kedua informasinya bisa Anda dapatkan pada akun blogspot Anda,
informasi cname pada setiap akun berbeda beda, jadi jika sudah didapatkan informasi cname Anda bisa langsung set via spanel pada menu sunting DNS

Host: xxxxxx (random, yang didapatkan dari blogspot Anda) Nama asli: gv-xxxxxxxxxxxxxxxxxxxxxxx.domainverify.googlehosted.com (random, yang didapatkan dari blogspot Anda)
  • lalu klik Tambah record CNAME
  • klik Update lalu klik Selesai
  • Jika anda mendapati tulisan error "Kami tidak dapat memverifikasi otoritas Anda untuk domain ini. Kesalahan 32."
Blogsp3a.png
Silahkan anda konfirmasi ke technical support untuk membantu melakukan syncronize domain anda di dalam server hosting anda, jika sudah kembali lagi ke dashboard blogger anda dan klik tombol simpan. Jika berhasil maka tampilan di dashboard blogspot anda seperti pada gambar di bawah ini.
Blogsp4.png

Selanjutnya kita set redirect di spanel anda via skrip agar jika pengunjung mengakses domain utama http://example.com langsung diarahkan ke http://www.example.com.
Caranya adalah sebagai berikut:
  • Login ke dalam spanel akun hosting anda
  • Klik File ==> Kelola File
  • masuk ke direktori sites / example.com / www
  • Klik tombol Buat File lalu beri nama index.html yang isinya:
<head>
<meta http-equiv="refresh" content="0; URL=http://www.example.com">
</head>
  • Jika file index.html sudah ada, Anda tidak perlu membuat file tersebut. Cukup edit/sunting file tersebut saja dan isikan seperti skrip di atas
Cara lainnya adalah menggunakan redirect .htaccess :
  • Login ke dalam spanel akun hosting anda
  • Klik File ==> Kelola File
  • masuk ke direktori sites / example.com / www
  • Klik tombol Buat File lalu beri nama .htaccess yang isinya:
Selesai.
Artikel terkait:
http://support.wordpress.com/domain-mapping/
note:
Prihal petunjuk diatas Teknikal support bisa bantu setting jika host domain menggunakan paket MWN PARKING BLOGSPOT atau PAKET HOSTING lainnya, tidak berlaku untuk MWN PARKING SPANEL.
Berikut cara melakukan setting DNS untuk pelanggan Rumahweb yang hanya menggunakan layanan domain saja tanpa hosting :
1. Login ke clientzone Rumahweb di url http://clientzone.rumahweb.com/clientarea.php
2. Klik menu “Domains” > “Domainku”
3. Klik tombol “Manage Domain” dikanan nama domain yang akan disetting DNS-nya
4. Klik menu “Management Tools” > “Manage DNS”
5. Dari halaman DNS Management, pilih jenis record yang akan ditambahkan. Untuk contoh kali ini adalah penambahan “A record”. Klik tombol “Manage A record” kemudian klik “Add a new Record”.
6. Contoh gambar di bawah kali ini menambahkan record DNS untuk setting custom domain ke blogspot. Apabila nama hostname kosong, masukkan “@” dalam kolom “Hostname”. Klik “Add Record” untuk menyimpan perubahan.
7. Apabila berhasil, akan muncul informasi bahwa proses penambahan record telah berhasil dilakukan.
Lakukan proses ke-6 dan ke -7 untuk melakukan penambahan A record yang lain.
Setting DNS memerlukan waktu propagasi antara 1-24 jam, sehingga jika domain belum bisa diakses / belum mengarah ke setting DNS maka kemungkinan karena propagasinya belum selesai dan tinggal menunggu sampai propagasinya selesai.
Untuk menghapus record DNS yang sudah dibuat adalah dengan cara menekan tombol “Delete” pada baris yang sama dari record yang kana di hapus. Seperti pada gambar di bawah ini.
Be Sociable, Share!



Sekarang kita akan belajar menggunakan contoh :

Dengan menggunakan tutorial ini, kita akan membahas bagaimana cara membuat Poll Application (aplikasi untuk polling, pemungutan suara).

Aplikasi ini akan terdiri atas dua bagian :
- Public Site yang dapat dilihat banyak orang sehingga dapat melakukan vote.
- Admin Site yang mengizinkan anda untuk melakukan menambah, mengubah dan mengurangi data.

Kita sudah menginstall Django di tutorial sebelumnya. Anda dapat memanggil Django yang sudah terinstall dengan mengaktifkan interpreter dan menuliskannya pada console import django . Apabila perintah berjalan sukses dan tidak error maka itu berarti django sudah terinstall.


Membuat Project

Apabila ini adalah awal dan pertama kalinya anda menggunakan django, anda akan lebih berhati-hati dalam mensetting setup. Mengumpulkan dan menata ulang setting baik berupa konfigurasi database, spesific option, dan application setting.

Dari command line gunakan cd masuklah ke directory yang akan kita buat menjadi tempat dikumpulkannya code.

django-admin.py startproject mysite
Hal ini akan membuat direktory mysite pada komputer anda.

django-admin.py harus dipastikan selalu ada pada system anda. apabila anda tidak menemukannya maka coba dicari pada site-packages/django/bin, dimana site-packages ada pada direktori dimana python anda install. Apabila anda menggunakan symlinking untuk django-admin.py maka tempatnya berada pada /usr/local/bin.

Dimanakah code python berada ? 
bagi anda yang sering menggunakan PHP code program diletakkan di var/www . Hal ini berbeda dengan python yang diletakkan di /home/code_programnya . 
Ini jauh lebih Aman.

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
* bila anda menggunakan versi django terbaru strukturnya berbeda tidak apa-apa.

Berikut ini keterangan dari file-file tersebut :
These files are:
  • Yang paling luar mysite/ directory adalah direktori untuk menampung file project kita. Direktori ini dapat kita rename sesuai keinginan kita.
  • manage.py: Sebuah program untuk berinteraksi dengan django project kita. Kita dapat memperoleh informasi lebih lanjut tentang file manage.py pada django-admin.py and manage.py.
  • Di dalam mysite/ directory adalah file-file python project kita. Nama paket tersebut akan dipake untuk memanggil project  (contoh import mysite.settings).
  • mysite/__init__.py: Sebuah file yang kosong yang digunakan oleh Python agar dikenali sebagai Paket Python.
  • mysite/settings.py: Settings/configuration untuk Django project. Django settings digunakan untuk mensetting program project kita.
  • mysite/urls.py: Sebuah file dimana digunakan untuk membuat dan mensetting tampilan URL. untuk informasi lebih lanjut tentang file ini anda dapat melihat di URL dispatcher.
  • mysite/wsgi.py: Sebuah entry point WSGI-compatible webservers untuk melayani project kita.

Server Development

Langkah selanjutnya adalah kita masuk ke direktori Mysite kemudian untuk menjalankan webserver django kita ketikkan :

python manage.py runserver

Terlihat hasilnya adalah sebagai berikut.

Sukses Menjalankan Django Python Server


Sampai disinilah kita sudah berhasil menjalankan Django Development Server. Django Development Server ini murni menggunakan sintaks python jadi tidak menggunakan Apache Server. Server ini sudah terinstall dalam paket Django, jadi kita tidak perlu mensetting server segala, cukup memikirkan kode-kodenya dan Server siap di lauching. Asik bukan....

Perhatian : Jangan gunakan dibangun ulang server python yang sudah terpaket di django ini, karena kita focus di development codenya bukan pengembangan web servernya.


Database Setup

Sekarang, edit mysite/settings.py. Ini adalah modul standard python untuk menseting variabel pada Django settings. Gantilah DATABASES 'default' untuk melakukan koneksi ke database.
  • ENGINE -- Yang disupport django 'django.db.backends.postgresql_psycopg2', 'django.db.backends.mysql', 'django.db.backends.sqlite3' atau 'django.db.backends.oracle'. Atau database yang lain juga tersedia klik disini untuk info lebih lanjut.
  • NAME -- Nama dari database anda. Apabila anda menggunakan SQLite, database akan menjadi sebuah file pada komputer anda; pada kasus ini, NAME harus disertakan secara jelas dimana path file diletakkan, masukkan juga nama file. Apabila file tidak ada, maka file akan secara otomatis dibuat saat kita melakukan synchronize database saat pertama kali (lihat dibawah ini).
    Ketika menspesifikkan path-nya, selalu gunakan forward slashes, pada Windows (contoh C:/homes/user/mysite/sqlite3.db).
  • USER -- Nama Username database (tidak digunakan pada SQLite).
  • PASSWORD -- Password database (tidak digunakan pada SQLite).
  • HOST -- Database host anda selalu ON. Biarkan isian ini kosong pada database server anda (tidak digunakan pada SQLite).
Apabila anda pemula dan tidak tahu database, kami merekomendasikan menggunakan SQLite dengan mensetting ENGINE menjadi 'django.db.backends.sqlite3' dan NAME untuk menempatkan dimana kita ingin menempatkan databasenya. SQLite di-includekan Python 2.5 dan lebih baru, jadi anda tidak membutuhkan menginstall apapun untuk menginstall SQLite. Saat anda menginstall python disaat yang sama anda sudah menginstall SQLite.


Contoh
Apabila menggunakan PostgreSQL atau MySQL, yakinkan kita membuat database terlebih dahulu. Lakukan itu semua dengan "CREATE DATABASE database_name;" menggunakan interakif database prompt.
Apabila menggunakan SQLite, anda tidak perlu membutuhkan setting ini -  database file akan secara otomatis dikerjakan program.

Ketika anda mensetting settings.py, set TIME_ZONE menggunakan Time Zone kita. Default time adalah waktu di (Chicago).
Juga perlu dicatat bahwa INSTALLED_APPS setting terdapat pada file bagian bawah. Semua aplikasi pada Django diaktifkan. Apps dapat digunakan pada multi projects, dan kita dapat mem-package dan mendistribusikan mereka ke berbagai project.
Secara default default, INSTALLED_APPS menyertakan beberapa apps, semua datang bersama Django:
Semua aplikasi ini disertakan secara default agar nyaman dalam banyak kasus secara umum.
Setiap applications dibuat minimal menggunakan satu database table, yang digunakan, jadi kami membutuhkan untuk membuat table pada database sebelum kita menggunakannya. Untuk melakukan itu gunakan perinta dibawah ini :

python manage.py syncdb
 
Perintah syncdb command dapat dilihat pada INSTALLED_APPS setting secara otomatis  database tables terbuat sesuai dengan  file settings.py . Anda akan melihat pesan saat pembuatan tabel terbuat. dan anda akan mendapati sebuat prompt yang bertanya apakah anda ingin menggunakan superuser sebagai authentication system. Tinggal ditekan next saja berikutnya.
Apabila anda tertarik, jalankan command-line client untuk database anda dan ketikkan \dt (PostgreSQL), SHOW TABLES; (MySQL), atau .schema (SQLite) untuk menampilkan tables Django yang sudah terbuat.

Untuk fungsi minimal
Seperti yang sudah kita bicarakan, aplikasi secara default sudah di-includ untuk kasus umum, tetapi tidak semua orang membutuhkan itu. Apabila anda tidak membutuhkannya, hapus saja sintaks INSTALLED_APPS sebelum menjalankan syncdb. syncdb command hanya akan membuat tables untuk apps di INSTALLED_APPS.


Membuat Model
Sekarang environment anda "project" -- sudah ter-set up, anda sudah men-setup saat mengerjakannya.
Setiap application yang anda tulis di Django terdiri dari Python package, dimana Python path anda, yang selalu mengikuti konfensi tertentu. Django datang dengan sebuah utility yang secara otomatis menggenerate basic directory structure dari app, jadi anak dapat memfocuskan diri anda untuk menulis code dari pada membuat direktori-direktori yang dibutuhkan.


Projects vs. apps
Apa perbedaan antara sebuah project dan app? App adalah Web application yang melakukan sesuatu -- seperti Weblog system, sebuah database untuk public records atau sebuah pooling sederhana poll app. Sedang sebuah project adalah konfigurasi dan apps untuk situs tertentu. sebuah project dapat terdiri dari multiple apps. An app can be in multiple projects.

Apps anda dapat disimpan dimana saja di Python path. Pada tutorial ini, kita akan membuat poll app dengan menggunakan file manage.py sehingga dapat dibuktikan bahwa itu merupakan top-level module, bukan submodul dari mysite.
Untuk membuat app pertama kita, yakinkan dulu bahwa kita sudah berada di direktori manage.py dan ketikkan perintah dibawah ini :

python manage.py startapp polls

maka akan tercipta file berikut ini :

polls/
    __init__.py
    models.py
    tests.py
    views.py

directory structure ini akan tercipta poll application.
Langkah pertama dalam menuliskan sebuah database Web app pada Django adalah untuk mendefinisikan model anda -- dasarnya, database layout anda, dengan tambahan metadata.

Philosophy
Sebuah model adalah single, definitive source dari data tentang data anda. Ini berisi field dasar dan behavior data yang akan di storekan. Django mengikuti DRY Principle. Tujuan dari mendefinisikan model data pada satu tempat dan secara otomatis didefinisikan dari tempat itu.


Pada poll app yang kita buat , kita akan membuat dua model : polls dan choices. poll memiliki pertanyaan dan tanggal publikasi. Pilihan memiliki dua alternatif:  memilih text atau memilih secara voting. Pilihan tersebut choice di assosiasikan dengan sebuah poll.
concept ini dipresentasikan dengan Python classes. Editlah file polls/models.py sehingga menjadi sebagai berikut :

from django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()


Kode ini langsung. model direpresentasikan pada sebuah class dimana subclasses dari django.db.models.Model. Tiap model memiliki class variables number, yang mana tiap bagian me-representasikan sebuah database field pada model.
Tiap field diwakili oleh sebuah Field class -- contoh, CharField untuk character fields dan DateTimeField untuk waktu. Hal ini memberi tahu Django apa tipe data yang akan ada pada field.
Nama dari tiap-tiap Field instance (contohnya. question atau pub_date ) ini adalah nama dari field name( machine-friendly format ). Anda akan menggunakan nilai dari variabel ini pada Python code anda, dan database anda akan menggunakannya sebagai nama column.
Anda dapat menggunakan pilihan pertama posisi argumen Field agar dapat dibaca oleh manusia. Hal ini digunakan pada sepasang introspective parts dari Django, didokumentasikan secara ganda. Apabila field ini tidak tersedia, Django akan menggunakan machine-readable name. Pada contoh ini, kita memiliki hanya didefinisikan oleh human-readable name untuk Poll.pub_date. Untuk semua field pada model, field's machine-dibaca oleh manusia hanya namanya saja.
Beberapa Field classes memiliki unsur-unsur yang dibutuhkan. CharField, contohnya, mengharuskan anda menggunakan max_length. Hal ini tidak hanya digunakan pada database schema, tetapi pada validation, seperti yang sudah kita lihat dan saksikan.
Yang terakhir, catat sebuah relasi yang didefinisikan oleh ForeignKey. Hal ini memerintahkan Django yang Choice yang direlasikan dengan single Poll. Django mensupport semua database relationships: many-to-ones, many-to-manys dan one-to-ones.


Mengaktifkan MODEL
Dengan code yang sederhana ini  model code akan memberikan Django banyak informasi. Dengan itu Django dapat :
  • Membuat sebuah database schema (CREATE TABLE statements) untuk app.
  • Membuat Python database-access API untuk mengakses Poll dan Choice objects.
Tetapi yang pertama kita membutuhkan untuk memanggil project  polls app yang sudah terinstall.

Philosophy
Django apps adalah "pluggable": Anda dapat menggunakan app ini pada multiple projects, dan anda akan mendistribusikan apps, karena mereka tidak terikat pada installasi django yang diberikan.

Edit  settings.py file lagi, dan rubah INSTALLED_APPS setting untuk menambahkan string 'polls'. sehingga dapat terlihat sebagai berikut :

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

Sekarang Django tahu hal apa yang diincludekan dalam polls app. sekarang jalankan command:

python manage.py sql polls

Anda akan melihat statement berikut ( CREATE TABLE SQL statements untuk membuat polls app):

BEGIN;
CREATE TABLE "polls_poll" (
    "id" serial NOT NULL PRIMARY KEY,
    "question" varchar(200) NOT NULL,
    "pub_date" timestamp with time zone NOT NULL
);
CREATE TABLE "polls_choice" (
    "id" serial NOT NULL PRIMARY KEY,
    "poll_id" integer NOT NULL REFERENCES "polls_poll" ("id") DEFERRABLE INITIALLY DEFERRED,
    "choice" varchar(200) NOT NULL,
    "votes" integer NOT NULL
);
COMMIT;

meski polls menjadi pools karena salah ketik.


Catat hal berikut ini :
  • output yang tepat akan sangat bergantung pada database yang anda gunakan.
  • Table names secara otomatis di buat dengan mengkombinasikan nama app (polls) dan lowercase dari model -- poll dan choice.
  • Primary keys (IDs) akan ditambahkan secara automatically.
  • Dengan konvensi, Django menambahkan "_id" untuk menjadi foreign key field name.
  • foreign key relationship dibuat secara explicit dengan REFERENCES statement.
  • Dijahitkan pada database yang anda gunakan, jadi database-specific field types seperti auto_increment (MySQL), serial (PostgreSQL), atau integer primary key (SQLite) akan dibuat secara automatically. Sama berlakunya dengan mengutip field name -- menggunakan double quotes atau single quotes. Pencipta dari  tutorial menjalankan PostgreSQL, jadi saat digenerate maka yang diciptakan adalah PostgreSQL syntax.
  • sql command tidak sebenarnya di run  pada database SQL pada database anda - itu hanya tertulis pada layar sehingga anda dapat melihat Statement SQL Django yang dibutuhkan. Apabila anda menginginkan, anda dapat meng-copy dan paste SQL ini pada database prompt anda. Bagaimanapun juga kita dapat melihat secara sepintas, Django menyediakan jalan termudah untuk  melakukan installasi SQL ke database.
Apabila anda masih teratarik maka jalankan perintah-perintah dibawah ini :
Lihat output yang terlihat pada perintah tadi dapat membuat anda mengerti bagaimana dan apa yang terjad.
Sekarang jalankan syncdb lagi  untuk membuat seluruh model tables pada database anda :

python manage.py syncdb

syncdb command menjalankan SQL dari sqlall pada database anda dari apps  INSTALLED_APPS yang belum ada pada database anda. Hal ini membuat tables, initial data dan indexes untuk banyak apps anda tinggal menambahkan pada project anda sejak anda menjalankan syncdb. syncdb dapat dipanggil kapan saja sesuai yang anda minta, dan akan membuat tabel yang belum terbuat.
Baca django-admin.py documentation untuk informasi yang lengkap mengenai manage.py utility yang dapat dilakukan.


Bermain dengan API

Sekarang, kita akan lompat ke interactive Python shell dan play dengan Free API Django yang sudah diberikan kepada anda. Untuk memanggil Python shell, gunakan perintah ini command:

python manage.py shell

Kami menggunakan ini bukan hanya untuk mengetik "python", karena manage.py mengeset DJANGO_SETTINGS_MODULE environment variabel, yang mana memberikan Django python import path kepada file settings.py .

Bypassing manage.py
Apabila anda tidak menggunakan manage.py, no problem. anda hanya mengeset DJANGO_SETTINGS_MODULE environment variable untuk mysite.settings dan menjalankan python dari direktori yang sama yang ada file manage.py didalamnya (atau yakinkan directory tersebut pada python path import mysite bekerja).

Sekarang gunakan shell API tersebut untuk mengeksplore Database API :

>>> from polls.models import Poll, Choice   # Import the model classes we just wrote.

# No polls are in the system yet.
>>> Poll.objects.all()
[]

# Create a new Poll.
# Support for time zones is enabled in the default settings file, so
# Django expects a datetime with tzinfo for pub_date. Use timezone.now()
# instead of datetime.datetime.now() and it will do the right thing.
>>> from django.utils import timezone
>>> p = Poll(question="What's new?", pub_date=timezone.now())

# Save the object into the database. You have to call save() explicitly.
>>> p.save()

# Now it has an ID. Note that this might say "1L" instead of "1", depending
# on which database you're using. That's no biggie; it just means your
# database backend prefers to return integers as Python long integer
# objects.
>>> p.id
1

# Access database columns via Python attributes.
>>> p.question
"What's new?"
>>> p.pub_date
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=<UTC>)

# Change values by changing the attributes, then calling save().
>>> p.question = "What's up?"
>>> p.save()

# objects.all() displays all the polls in the database.
>>> Poll.objects.all()
[<Poll: Poll object>]

Tunggu sebentar. <Poll: Poll object> adalah bentuk representasi yang tidak terdukung. Let's fix dengan mengedit polls model ( file polls/models.py ) dan tambahkan __unicode__() method pada Poll dan Choice:

class Poll(models.Model):
    # ...
    def __unicode__(self):
        return self.question

class Choice(models.Model):
    # ...
    def __unicode__(self):
        return self.choice

Hal ini sanget penting untuk menambahkan __unicode__() methods pada model anda, tidak hanya untuk kenyamanan saat berurusan dengan interactive prompt, tetapi selalu karena objects adalah representasi yang digunakan Django secara otomatis digenerate admin.

Mengapa __unicode__() mengapa tidak __str__()?
Apabila anda sangat familiar dengan Python, anda akan memiliki kebiasaan coding __str__() methods untuk classe, berbeda dengan __unicode__() methods. Kita menggunakan __unicode__() disini karena Django models berurusan dengan Unicode secara default. Semuga data pada database anda dikonfersi ke Unicode bila sudah kembali.
Django models secara default menggunakan default __str__() method yang memanggil __unicode__() dan mengkonversi menjadi UTF-8 bytestring. ini artinya bahwa unicode(p) akan mengembalikan Unicode string, dan str(p) akan kembali dengan normal string, dengan karakter ber-encode UTF-8.
tinggal ingat __unicode__() methods untuk models anda. Dengan sebuah keberuntungan untuk semua yang anda kerjakan.

Catatlah berikut ini adalah sintaks normal Python methods. Sekarang kita melakukan custom method, hanya demonstrasi :

import datetime
from django.utils import timezone
# ...
class Poll(models.Model):
    # ...
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)



Kita tambahkan import datetime dan from django.utils import timezone, untuk referensi datetime module dan Django's time-zone-related utilities pada django.utils.timezone. Apabila anda sangat familiar menggunakan Python, anda dapat mempelajari time zone support docs.
Save dan jalankan Python Shell lagi :

 python manage.py shell

>>> from polls.models import Poll, Choice

# Make sure our __unicode__() addition worked.
>>> Poll.objects.all()
[<Poll: What's up?>]

# Django provides a rich database lookup API that's entirely driven by
# keyword arguments.
>>> Poll.objects.filter(id=1)
[<Poll: What's up?>]
>>> Poll.objects.filter(question__startswith='What')
[<Poll: What's up?>]

# Get the poll whose year is 2012.
>>> Poll.objects.get(pub_date__year=2012)
<Poll: What's up?>

>>> Poll.objects.get(id=2)
Traceback (most recent call last):
    ...
DoesNotExist: Poll matching query does not exist.

# Lookup by a primary key is the most common case, so Django provides a
# shortcut for primary-key exact lookups.
# The following is identical to Poll.objects.get(id=1).
>>> Poll.objects.get(pk=1)
<Poll: What's up?>

# Make sure our custom method worked.
>>> p = Poll.objects.get(pk=1)
>>> p.was_published_recently()
True

# Give the Poll a couple of Choices. The create call constructs a new
# choice object, does the INSERT statement, adds the choice to the set
# of available choices and returns the new Choice object. Django creates
# a set to hold the "other side" of a ForeignKey relation
# (e.g. a poll's choices) which can be accessed via the API.
>>> p = Poll.objects.get(pk=1)

# Display any choices from the related object set -- none so far.
>>> p.choice_set.all()
[]

# Create three choices.
>>> p.choice_set.create(choice='Not much', votes=0)
<Choice: Not much>
>>> p.choice_set.create(choice='The sky', votes=0)
<Choice: The sky>
>>> c = p.choice_set.create(choice='Just hacking again', votes=0)

# Choice objects have API access to their related Poll objects.
>>> c.poll
<Poll: What's up?>

# And vice versa: Poll objects get access to Choice objects.
>>> p.choice_set.all()
[<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]
>>> p.choice_set.count()
3

# The API automatically follows relationships as far as you need.
# Use double underscores to separate relationships.
# This works as many levels deep as you want; there's no limit.
# Find all Choices for any poll whose pub_date is in 2012.
>>> Choice.objects.filter(poll__pub_date__year=2012)
[<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]

# Let's delete one of the choices. Use delete() for that.
>>> c = p.choice_set.filter(choice__startswith='Just hacking')
>>> c.delete()
 

Untuk informasi model relationship lihat Accessing related objects. Untuk lebih tahu cara menggunakan double underscores untuk membuat field lookups via API, lihat Field lookups. untuk detail database API, lihat Database API reference.