Sanic'e Giriş - Flask'ten 6 Kat Hızlı Asenkron Web Frameworkü

Gbmdpof

Kıdemli Üye
23 Eyl 2016
2,001
11
[COLOR="WhiteSanic, Flask'e benzer bir syntaxı olan ama Flask'ten 6 kat daha hızlı olan asenkron bir web frameworküdür. Sanic kullanmak için yeni asenkron syntaxından dolayı Python 3.5 veya üstü bir Python sürümüne ihtiyacınız vardır.

Konuya başlamadan benchmark sonuçları ile Sanic'in ne kadar hızlı olduğunu göstermek istiyorum:

[CENTER][IMG]https://kek.gg/i/6Qx8-G.png[/IMG][/CENTER]

Evet, benchmark sonuçlarını gördüğümüze göre bir "Hello World!" örneği ile başlayalım.
[code][font=monospace][color=#AA22FF][b]from[/b][/color] [color=#0000FF][b]sanic[/b][/color] [color=#AA22FF][b]import[/b][/color] Sanic, response [color=#008800][i]#Gerekli importları yapalım[/i][/color]

app [color=#666666]=[/color] Sanic() [color=#008800][i]#App adındaki Sanic nesnemizi oluşturalım[/i][/color]

[color=#AA22FF]@app[/color][color=#666666].[/color]route([color=#BB4444]'/'[/color]) [color=#008800][i]#route dekoratörü ile kodumuza giden URL'yi belirtelim[/i][/color]
[color=#AA22FF][b]async[/b][/color] [color=#AA22FF][b]def[/b][/color] [color=#00A000]hello[/color](request):
[color=#AA22FF][b]return[/b][/color] response[color=#666666].[/color]text([color=#BB4444]'Hello World!'[/color]) [color=#008800][i]#response.text biçiminde (yani düz metin) verimizi döndürelim[/i][/color]

[color=#AA22FF][b]if[/b][/color] [color=#B8860B]__name__[/color] [color=#666666]==[/color] [color=#BB4444]'__main__'[/color]:
app[color=#666666].[/color]run(host[color=#666666]=[/color][color=#BB4444]'127.0.0.1'[/color], port[color=#666666]=[/color][color=#666666]8000[/color]) [color=#008800][i]#Uygulamayı 127.0.0.1 adresinde (yani localhostumuzda) 8000 portu üzerinde başlatalım.[/i][/color]
[/font][/code]

Kodumuzu çalıştırıp [url]http://127.0.0.1:8000/[/url] adresine gidersek bizi bir "Hello World!" yazısının karşıladığını görebiliriz. Gördüğünüz gibi aynı Flask kullanır gibi Sanic'i de kullanabiliyoruz. Bu yüzden daha önce Flask kullandıysanız hiç zorluk çekmeyeceksiniz. Tek fark, Sanic'te response türünü belirtmemiz gerekmesi ve fonksiyonumuzu async yapmamız.

[SIZE="3 [URL="https://tik.lat/0iE3r"] tıklayın[/URL].

[SIZE="3
 

Ceen

Üye
29 Tem 2017
219
0
Eline sağlık hocam. Biraz karışık geldi bana. Bilmediğim terimlerden ötürü ama çok ise yarar. :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.