"Bilgisayarım" Sunucu Olsun - Python & Bottle [Bot4Bots #3]

in #tr8 years ago (edited)

vocaloid_unit_01__ascension_miku_by_eddy_shinjuku-d63sbca.jpg

Başlığı görünce birileri;

s1.png

Oo.. Sen hala orda mısın? O işler 2000'lerde kaldı. Tamam biz de merak ettik. Bir çorba kaşığı sabit IP, bi diş ince doğranmış Apache yoksa yarım bardak IIS falan.. ama geçti gitti. Şimdi Bulut diye bi şi' var duymuş olman lazım. Hani yağmur yağıyor ya, bildin? :)
s2.png

şeklinde ti'ye alabilir :)

Yok o kadar değil. Elbette duydum ve kullandım da.

Benim kastım daha çok;
"Bilgisayarım SUNUCU olsun" değil de
"BİLGİSAYARIM sunucu olsun" şeklinde.

:) Biraz açayım:

hr-kisa.png

Flash çıktığında internet ne kadar eğlenceli hale gelmişti hatırlayalım. Photoshop'taki bir tasarımı web'de görebilmek için bolca Table ve bolca Spacer.gif ile uğraşırken Flash, hayal ötesi bir şekilde eye4you ve Karate Kamil gibi devrimlerin pimini çekip önümüze atıvermişti.

Ve inanılmaz bir creative-Özgürlük gelmişti.
(Bu parantezin içinde söylenecek baya çok şey varmış :) Bir kaç örnek vereyim demiştim ama baktım hamur baya su götürüyor, hepsini sildim)

r13.png

Python ile tanışma

hr-kisa.png

Benzer bi özgürlük hissini Python ile tanıştıktan sonra da yaşamıştım. Çok şey yapabilmek mümkündü. Harbiden ço..ok şey!

Bununla beraber python ile zilyon şey yapılabilirken, bunlar sadece benim bilgisayarımda kalıyor(du).

Ama ben istiyor(d)um ki;
burada önümdeki pc'ye bir robot kol bağlayayım.
birisi @tnx'e SBD gönderdiğinde, o robot kol kağıda gönderenin adını yazsın ve fotoğrafını çeksin.
bu fotoğraf ya da yapılan işlemlerin videosu (canlı olarak) bir domainde yayınlansın.

Yani, "Bilgisayarım" (dosya .zip'lemek ya da tarayıcıya bağlanmak gibi bütün potansiyeliyle birlikte), etkileşimli bir sunucu olsun.

Bottle ile tanışma

hr-kisa.png

Python'un tonlarca kütüphanesinden birisi olan Bottle hem Apache/sunucu görevini yaparken hem de benim arkada amuda kalkmama izin veriyormuş. Tata!
pip install bottle
import bottle
bitti.
Nope! Asıl şimdi Başlıyor ;)
(eihg.. Okurken iç sesinizi detone yapacak :) bir klişe kullandım galiba. Pardon.)

bottle.png

Dikkat edilirse, bir kullanıcı www.murat.com/bisey yazdığında, bootle ile slash bisey altında index.html ya da index.php hazırlamama gerek yok.
Ekrana "Merhaba" da yazdırabilirim,
"Url'den ismi al, bu isme ait son konuya bak, şayet içerik-etiket #sanat'la ilgiliyse, bot gönder" de diyebilirim e1.png
"Robot kolu çalıştır" da diyebilirim ;)

10-11-12-13. satırlarda url'den aldığımız değişken, html'den bağımsız fonksiyonlarda çalışabiliyorken (mesela bi programı açmak, hoparlörün sesini kısmak..)
35-38. satırlarda aynı değişkeni önceki konudaki Steem-JS'a ait html içinde ekrana/client'e gönderebiliyoruz.
user.png

Bu arada Bottle, bu konuda karşıma çıkan ilk Python modülü.
Mutlaka iyi-kötü başka muadilleri de vardır sanırım. Belli ki mutfaktan biraz uzak kalınca, yeni(?) yemeklerin kokusu da pek gelmemiş.

Geç olsun, güç olmasın..
"Şimdi" gibi geç bir vakitte bile olsa, Python&Bottle ikilisi bana uçuk fikirler için kanat verdi diyebilirim ;)

r13.png

Görsel: Eddy Shinjuku

Sort:  

python'un flask kütüphaneside ufak web araçları yapmak için ideal, genelde bottle yerine flask kullanılıyor, eğer büyük bir proje yapacaksan django.

flask ve django'nun admin arayüzü de var ve bu arayüz seni bir çok derten kurtaran cinsten gayet kullanışlıdır.

@hakancelik @tolgahanuzun teşekkürler.

Ne talihsizlik ki, her ikisini de sadece apache'den az halice ama sınırlı kütüphaneler gibi algılamıştım :/

//Örneğin şu anda Noje.js'nin için de öyle düşünüyorum.
birisi murat.com/steem yazınca
{steem :2.90} ya da steembittrex.html vb. template'leri döndürecek gibi algılıyorum.

murat.com/17 url'lesine girildiğinde
imdb17.zip 'i açıp, içindeki filmin 17. saniyesindeki kareyi, kullanıcıya gösterebileceğini
düşünmüyorum.

bunda da mı yanılıyorum yoksa :) ?

Hocam django gayet esnek bir yapıya sahip, zaten kendileri python kütüphanesi olduğu için ayrı bir güzel, node.js'ye bende henüz yeni çalışmaya başladım ama anladığım kadarı ile buda gayet güzel api ler aracılığı ile size hızlı ve dinamik web siteleri hazırlamanıza olanak sağlıyor örnek vermek gerekirse coogger.com'u ben django ile geliştiriyorum ve js kütüphanelerine pek ihtiyaç duymadım çokta bilgim yok,ama coogger'ın bütün herşeyini python yaptığı için sunucuyu yormaya ve proje aşırı yavaşlamaya başladı şimdi coogger için bir api yapıyorum bunu django'nun rest uygulamsını kullanarak yapıyorum bunun üstüne node.js giydireceğim api'den gelen verileri ( bu veriler içinde steem.js de var ) direk template içine yerleştirceğim ve coogger hızlanmış olacak, umarım her ikisinin ne kadar güzel olduklarını anlatabilmişimdir.

Beni heyecanlandıran, yukarıda geçtiği üzere web dışı araktaksiyonların da olaya dahil edilebilmesi. Bunlar olacaksa uğraşmaya değer.

Node.js de mesele sadece apache/ISS tadında ama daha güçlüsü/hızlı şeklindeyse, alınacak performans'in bedeli öğrenme/sorunlar/çözümler/emek/zaman/hayat olacaksa, 2 CPU + 2GB RAM ücreti çok daha hafif bir bedel olur sanırım.

Coogger'ın yolu her dem açık açık olsun, en güzeli neyse o olsun ;)

You got a 43.05% upvote from @brupvoter courtesy of @murattatar!

You got a 42.15% upvote from @slimwhale courtesy of @murattatar!

Did you know you can make a passive income by simply delegating steem power?
@slimwhale offers the best return on your investment, sharing 100% of the bidding pool rewards, daily, proportional to your investment.
Let's grow together, start earning now by clicking the following links: 10SP, | 50SP | 500SP, | any amount |
For more information, see here or join me on Discord

You got a 42.28% upvote from @slimwhale courtesy of @murattatar!

Did you know you can make a passive income by simply delegating steem power?
@slimwhale offers the best return on your investment, sharing 100% of the bidding pool rewards, daily, proportional to your investment.
Let's grow together, start earning now by clicking the following links: 10SP, | 50SP | 500SP, | any amount |
For more information, see here or join me on Discord

You got a 27.61% upvote from @bewhale courtesy of @murattatar! Delegate Us Steem Power & get 100% Daily rewards Payout! 50 SP, 100, 200, 500, 750, 1000, 3000, 5000,10000 or Fill in any amount of SP Earn 1.25 SBD Per 1000 SP | Discord server

This post has received upvote by @bestboom!
|| An upvote service which gives 2.3x return ||

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.094
BTC 61744.19
ETH 1726.11
USDT 1.00
SBD 0.39