Monday, November 15, 2010

Instalasi Google AppEngine Launcher

Di tulisan sebelumnya saya sudah mengulas mengenai pemrograman web dengan mengunakan fasilitas Google AppEngine. Tidak seperti hosting konvensional yang dapat didevelop dan diedit secara online langsung dari panel control tapi dengan AppEngine, aplikasi harus dibuat secara offline di PC kita (localhost) lebih dahulu.

Untuk dapat mendevelop aplikasi kita di PC dibutuhkan AppEngine Launcher, yaitu sebuah aplikasi yang sudah dilengkapi server dan modul-modul yang dibutuhkan untuk membuat aplikasi AppEngine (termasuk modul Django) yang dapat diunduh disini.

AppEngine Launcher, instal aplikasi tersebut ke PC (contoh disini menggunakan sistim operasi Windows). Setelah setelah terinstal, jalankan aplikasinya seperti tampilan berikut :




 Untuk membuat aplikasi baru, klik menu File -> Create New Application, dan akan keluar tampilan seperti berikut :


Pada 'Application Name' isikan nama project atau aplikasi yang akan dibuat, 'Parent Directory' adalah nama root directory yang akan kita gunakan sedangkan 'Port' adalah nomor port yang akan kita gunakan pada localhost.

Setelah selesai, coba cek folder yang telah kita tetapkan sebagai root directory disana akan kita temui tiga file yang secara otomatis dibuat saat kita membuat project baru.

1. main.py:
File ini berisi program utama aplikasi

2. app.yaml:
File ini berisi konfigurasi directory dan url yang kita gunakan dalam aplikasi, seperti contoh berikut :

application: my4pps
version: 1
runtime: python
api_version: 1

handlers:
- url: /
  script: main.py

3. index.yaml :
File ini akan terupdate secara otomatis ketika server mendeteksi adanya type query baru yang dijalankan.

Percobaan

Sekarang kita buat aplikasi sederhana untuk test AppEngine Launcher yang sudah kita instal. Buat project baru sesuai langkah diatas dengan nama project 'engineapp1' diport 8080.

Buka file main.py, isi file-nya kurang lebih seperti berikut :

#!/usr/bin/env python
#
# Copyright 2007 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util


class MainHandler(webapp.RequestHandler):
    def get(self):
        self.response.out.write('Hello world!')


def main():
    application = webapp.WSGIApplication([('/', MainHandler)],
                                         debug=True)
    util.run_wsgi_app(application)


if __name__ == '__main__':
    main()


Perhatikan pada class MainHandler, kelas inilah yang akan pertama kali dibuka saat kita menjalankan aplikasi dengan mengetikan http://localhost:8081/ pada address bar browser.


Nama kelas MainHandler dapat kita rubah sesuai 'selera' tapi jangan lupa untuk merubah url ('/') dan nama kelas (MainHandler) pada tuple yang terdapat pada argumen instan WSGIAplication pada modul webapp yang kita masukan pada variabel 'application' di fungsi 'main' dibawah ini :

def main():
    application = webapp.WSGIApplication([('/', MainHandler)],
                                         debug=True)
    util.run_wsgi_app(application)


Untuk menjalankan aplikasi yang sudah kita buat, sorot pada nama aplikasi yang akan kita jalankan dan klik 'Run' pada tool bar AppEngine Launcher, lalu ketikan http://localhost:8080/ pada adress bar browser.


Sedangkan untuk mengupload aplikasi yang kita buat klik 'Deploy' dan setelah kita login secara otomatis semua file yang sudah kita buat dan tempatkan pada root directory kita akan terupload ke server AppEngine.

1 comment:

awan said...

jah -,-a kog sama ama yang di enook , n tambaj bikin bingung