আগের টপিক: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ১
--------------------------------------------------------------------------------------------
af টুলটি ইন্সটল করা হয়ে গেছে। এবার আপনার অ্যাপ্লিকেশানটির একটি লোকাল কপি পেতে হবে। এজন্য রুবি কমান্ড প্রম্পট থেকেই নীচের কমান্ড দিন।
af login
আপনার ইমেইল ও পাসওয়ার্ড দিয়ে লগিন করুন।
ধরি আপনার অ্যাপ্লিকেশানটির নাম ছিলো pyhello123, সেটার সোর্স পেতে হলে নীচের কমান্ড দিন-
af pull pyhello123
আপনার সোর্সকোডের ফোল্ডারটি ডাউনলোড হয়ে যাবে।
--------------------------------------------------------------------------------------------
এবার আমরা একটা ছোট্ট অ্যাপ্লিকেশান লিখবো। পাইথনে এজন্য বহু ওয়েব-ফ্রেমওয়ার্ক আছে। তবে ফোরামে bottle.py নিয়ে আলোচনা হওয়ায় আমরা bottle ফ্রেমওয়ার্কই ব্যবহার করবো।
সোর্সকোডের ফোল্ডারে নীচের দুটি ফাইল থাকবে -
requirements.txt
wsgi.py
মূল অ্যাপ্লিকেশান চালু হবে wsgi.py থেকে। যে যে লাইব্রেরি ব্যবহৃত হচ্ছে সেটার লিস্ট থাকবে requirements.txt ফাইলে। requirements.txt এ অলরেডি bottle অন্তর্ভুক্ত আছে।
wsgi তে অ্যাপ লেখার ক্ষেত্রে দুটি বিষয় জানতে হবে-
১) bottle ফ্রেমওয়ার্কে অ্যাপ্লিকেশান দুভাবে তৈরি করা যায়। ডকুমেন্টেশানে দুটি পদ্ধতিই দেখতে পাবেন। আমাদের এই পদ্ধতিটি ফলো করে ডিফল্ট অ্যাপ্লিকেশান তৈরি করতে হবে।
২) ডিফল্ট অ্যাপ্লিকেশানের ভ্যারিয়েবল নাম অবশ্যই application রাখতে হবে। কারণ wsgi তে মূল অ্যাপে এই "application" নামটি থাকতে হয়।
নমুনা হিসাবে wsgi.py ফাইলটিতে নীচের মতন কোড রাখা যেতে পারে-
import os
from bottle import Bottle, route, request, run
##application object is required by wsgi
application = app = Bottle()
@app.route('/')
def index():
return '''<a href='/login'>Welcome</a> to mysite.appfog<br/>
Powerded by <a href='http://www.python.org/' target='blank'>Python</a> | <a href='http://bottlepy.org/' target='blank'>bottle</a>.'''
@app.route('/login')
def loginform():
return '''<form method='POST' action='/loginsubmit'>
Name: <input name='name' type='text'/>
Pass: <input name='passw' type='password'/>
<input type='submit' value='GO'/>
</form>'''
@app.route('/loginsubmit', method='POST')
def login_submit():
name = request.forms.get('name')
passw = request.forms.get('passw')
if name == 'bottle' and passw == 'appfog':
return '''Welcome Admin.<br/>
Since you are the dev of this site, you know what to do next.'''
else:
return '''Sorry, you are unknown.'''
if __name__ == '__main__':
run(app, host='0.0.0.0', port=80)
route, request এবং run এর ব্যবহার জানার জন্য এই টপিক এবং বোতলের ডকুমেন্টেশান দেখুন।
এবার সোর্সকোড আপলোড করার জন্য রুবি কমান্ড প্রম্পটে নীচের কমান্ড দিন -
af update pyhello123
সফলভাবে আপলোড হয়ে গেলে অ্যাপ্লিকেশানটির সাবডোমেইনে অ্যাপটিকে অনলাইন দেখতে পাবেন।
টিউটোরিয়ালটি পড়ার জন্য ধন্যবাদ।