Python ile Web Uygulaması
Uygulamadan bahsedecek olursam, Ubuntu Server üzerinde veri tabanınından okunan verileri, basit bir web sitesinde göstermek olacak.
Kullanacağım programlar;
- VirtualBox
- Ubuntu Server
- PuTTY
- Phyton-pip
- Virtualenv
- Bottle
- SQLite
*********************************************************************************************************
1.İlk olarak ağ ayarlarını yapmak ile başlayacağım.(Kurulumlar üst tarafta oradan bakabilirsiniz.)
Şimdiden bahsedecek olursam iki adet PORT yönlendirmesi yapacağım. Birisi SSH(Secure Shell) için 22 portunu yönlendirmek olacak. İkincisi ise Web sunucusu için yönlendirmek olacak.
VirtualBox>Ayarlar>Ağ>Gelişmiş>Bağdaştırıcı1>Bağlantı Novktası Yönlendirme
*********************************************************************************************************
2.İkinci olarak ise SSH' kullanmamıza yardım edecek Ağ kısmından Host-Only Bağdaştırıcısını aktif ediyoruz.
VirtualBox>Ayarlar>Ağ>Gelişmiş>Bağdaştırıcı2
*********************************************************************************************************
3.Ağ ayarlarımızı yaptıktan sonra Sanal Makinemizi başlatıyoruz.
İlk olarak;
sudo apt-get update
sudo apt-get upgrade
yazarak makinemizi en güncel hale getiriyoruz.Sonra SSH'ı aktif etmek için
sudo-apt-get install ssh
yazıyoruz ve indiriyoruz.
*********************************************************************************************************
4.Ağ ayarlarımızı yaptıktan sonra, artık Kopyala yapıştır yapmamıza olanak sağlayan PuTTY'yi indirebiliriz.
*********************************************************************************************************
5.Normal bilgisayarımızda ipconfig yazarak VirtualBox Host-Only Network Kısmında bulunan Ipv4 adresimizi alıyoruz. [192.168.56.1]
*********************************************************************************************************
6.Sonra PuTTymizi başlatabiliriz.
**Artık yapacağım işlemler PuTTY üzerinden gidecek**
*********************************************************************************************************
7.Güncelleştirmelerimizi yaptıktan sonra, uygulamamızda gerekli olan virtualenv'yi
kuruyoruz.
sudo apt-get install python-virtualenv
Eğer ki böyle bir hata ile karşılaşırsanız;
export LC_ALL="en_US.UTF-8"export LC_CTYPE="en_US.UTF-8"
yazarak düzenleyebilirsiniz.
*********************************************************************************************************
8.Virtualenv'yi kurduktan sonra sırasıyla
- mkdir projects //Yazarak projects adında bir klasör oluşturuyoruz.
- cd projects //Yazarak projemizin içine girebiliyoruz.
- virtualenv --no-site-packages venv //Yazarak sanal bir çevre oluşturmasını sağlıyoruz.
*********************************************************************************************************
9.Pip yazarak python-pip'i kuruyoruz
sudo apt-get install python-pip
*********************************************************************************************************
10.Oluşturduğumuz sanal çevreyi
source venv/bin/activate
yazarak aktif hale getiriyoruz.
**********************************************************************************************************
11.Bottle paketini yüklüyoruz.
pip install bottle
*********************************************************************************************************
12.Sıra geldi SQLite'ı yüklemeye.
sudo apt-get install sqlite
*********************************************************************************************************
13.Bottle paketi ile SQLite arasındaki bağlantı için gerekli paketi yüklüyoruz.
pip install bottle-sqlite
*********************************************************************************************************
14.Veri_tabani adında py uzanlıtı bir dosya açıyoruz, nano editöründe.
nano veri_tabani.py
import sqlite3
db = sqlite3.connect('bseu.db')
db.execute("CREATE TABLE ogr (ogr_id INTEGER PRIMARY KEY, ogr_adi TEXT NOT NULL,
ogr_soyadi TEXT NOT NULL,ogr_aldigididers TEXT NOT NULL,ogr_vizenot INTEGER,
ogr_finalnot INTEGER,ogr_odevnot INTEGER,ogr_ortnot INTEGER)")
db.execute("INSERT INTO ogr VALUES (1,'Inanc','Ozkul','Isletim Sistemleri',50,50,50,50)")
db.execute("INSERT INTO ogr VALUES (2,'Inanc','Ozkul','Internet Programlama',50,50,50,50)")
db.execute("INSERT INTO ogr VALUES (3,'Merve','Karabulut','Isletim Sistemleri',70,70,70,70)")
db.execute("INSERT INTO ogr VALUES (4,'Murat','Ozalp','Isletim Sistemleri',100,100,100,100)")
db.commit()
Burada dikkat etmeniz gereken şeyler, kopyala yapıştır yapmak yerine elinizle
yazmanızı tavsiye ederim, yoksa UTF-8 charset hatası alabilirsiniz.
*********************************************************************************************************
15.Oluşturduğumuz veri tabanının db uzantısını çıkarıyoruz.
pyhton veri_tabani.py
yazıyoruz, ve bize bilecik isimli db uzantılı dosyasını oluşturuyor.
*********************************************************************************************************
16.Bir adet Bottle Kontrolcü oluşturuyoruz.
nano veriler.py
import sqlite3
from bottle import route, run, template
@route('/giris')
def show_uygulama():
db = sqlite3.connect('bseu.db')
c = db.cursor()
c.execute("SELECT ogr_id,ogr_adi,ogr_soyadi,ogr_aldigiders,
ogr_vizenot,ogr_finalnot,ogr_odevnot,ogr_ortnot FROM ogr") data = c.fetchall()
c.close()
output = template('ogrenciler_tablosunu_getir', rows=data)
return output
run(host='0.0.0.0', port=8080)
Eğerki no named bottle gibi bir hata ile karşılasıranız;
pip install bottle
yazarak hatadan kurtulabilirsiniz..
*********************************************************************************************************
17.Son olarakta ogrenciler_tablosunu_getir adında tpl(template) uzanlıtı bir dosya açıyoruz.
nano ogrenciler_tablosunu_getir.tpl
<h1>UYGULAMA</h1>
<table>
<tbody>
<tr><th>Ogrenci ID</th><th>Ogrenci Adi </th><th> Ogrenci Soyadi<th>
<th>Ogrenci Aldigi Ders</th><th>Ogrenci Vize Not</th><th>Ogrenci Final Not</th>
<th>Ogrenci Odev Not</th><th>Ogrenci Ortalama</th></tr>
%for row in rows:
<tr>
%for col in row:
<td><b>{{col}}</b></td>
%end
</tr>
%end
<tbody>
</table>
18.Ve artık uygulamamızı çalıştırabiliriz.
python veriler.py
yazarak uygulamamızı çalıştırabiliriz.
192.168.56.1:8080/giris yazarak
*********************************************************************************************************
Kaynak;
https://www.digitalocean.com/
Bir iki çıkan pürüzde de genellikle çarpık İngilizcem ile stackoverflow'a başvurdum
https://www.digitalocean.com/
Bir iki çıkan pürüzde de genellikle çarpık İngilizcem ile stackoverflow'a başvurdum

Yorumlar
Yorum Gönder