2014-04-25 17 views
10

Ölçeklenebilir bir internet uygulaması uygulaması için bazı mimari seçeneklerle uğraşıyorum.Twisted/Cyclone/Tornado için yüksek dereceli web çerçeveleri/eklentileri (web login/user/admin)?

benim için güzel çalışmış olan bir Twisted çekirdek kullanarak birçok Tornado adap (vb WebSockets, yetkili-dekoratörler, güvenli-kurabiye,)

temin etmek Cyclone çerçevesinde artar Twisted üzerine projemi dayandırmak seçtiniz . Çok sayıda IP protokolüne ve donanım arayüzüne sahipler. Bunların hepsi büyük bir kütüphane desteğine sahip oldular (ve benim uygulamalara yeni protokoller ve arayüzler ekliyorum. Çok düşük CPU ve çok yüksek bağlantı sayısı sağlar.

Sorunlarım, ikinci sipariş webapp işlevselliğiyle ilgilidir.

Cyclone düşüncesinde, bunun, hack hediyeleri (OpenID, oauth, kullanıcı kimliği çözücüleri ve güvenli çerezler) ile web sunucumda kullanıcı/oturum/yönetici işlevlerini yerine getiremeyeceği düşüncesini çektim. (txmongo üzerinden) benim veritabanı soyutlama 500+ hatları ve sadece bina kullanıcı girişlerinin sonra netleşti ben hem:

  1. /Tornado kullanıcı/oturum/yönetici uzayda getirmek ne kadar az Cyclone anlamadım ve
  2. tamamen düşünce başlangıçta hangi o senin

bir arkadaşım Flask beni işaret etti çok kullanıcılı yetkilendirme webapp inşa etmeye çalışıyoruz eğer boşlukları doldurmak için gereken kod miktarını anlamadım gereksiz, flask plugins'u bulana kadar. Flask-Login ve Flask-Admin'un birleşimi, kullanıcı, oturum ve kullanıcı yönetici gereksinimlerimi tamamen kapatacak ve tahminen tahminen 2k kod satırını yazmamı engelleyecektir. Ne yazık ki, şişe eklentileri tüm engelleme kodu ile dolu ve kütüphaneleri engelleme çağrıları. Kullanıcı/oturum işlevselliğinin her sayfa yüküyle birlikte gerçekleşmesi durumunda WSGIcontainers kullanılıyor olsalar bile onları projemle uyumlu olarak görmüyorum (ek olarak, herhangi bir kısa kesinti görmüyorum. onları)

benim sorum yeniden kabaca eşit işe: my protokol ihtiyaçları göz önüne alındığında, umarım Twisted uzayda piton zaman uyumsuz uzayda

(...) herhangi eklentileri veya alternatif çerçeveler vardır Flask-Login ve Flask-Admin'deki gibi kullanıma hazır kullanıcı/login/admin işlevselliği sağlar mı?

P.S. Flask'ın belirgin Twisted versiyonu olarak Klein'a baktım, ama eklenti ekosistemi yok gibi görünüyor ve güçlü bir kullanıcı/oturum/yönetici bulamıyorum.

P.P.S. Bu soruyu yazdığım zamana kadar kendi (crappy) kullanıcı oturum açma oturum sistemimi yazmıştım. Öyleyse gerçekten "Yönetici" yeteneğim (tümüyle Twisted/async şeklinde tasarlanan web UI rendering dahil olmak üzere kullanıcı tarzı kayıtlardaki otomatik CRUD fonksiyonları). Kullanıcıya/oturum açma sorusu sorulduğunda, zaten entegre edilmiş bir çözüm var (örneğin, flask-login ve flask-admin gibi). Bu durumda, kodumu düşürürüm ve buna geçiş yapardım.

+3

Orada Tornado'ya oturum desteği eklemeyi deneyen birkaç kişi var, ancak bunların hepsi artık korunmuyor gibi görünüyor: https://github.com/milancermak/tornado, https://github.com/diogobaeder/pycket. Ben de kullanmadım, bu yüzden onların kalitesinden emin değilim. En azından bazı kodları ödünç alabilirsiniz. – dano

+0

flask-socketio, async desteğine sahiptir. Şuna bakın: http://flask-socketio.readthedocs.org/en/latest/ – chfw

+0

Gerçekten tamamen doğru olmayan uyum için admin'e ihtiyacınız yok mu? Bu durumda Flask-Admin'i twisted WSGIResource içinde kullanabilirsiniz. Oturumla ilgili konulara gelince, ben de aynı cevabı bulmaya geldim :) – dpn

cevap

2

Gerçekten herşeye ihtiyacınız var mı? Zaman uyumsuz WebSockets'ı düşünün, ancak sayfa oluşturucuları senkronize edin. Gerekirse, uygulama sunucusunun IO ek yükünü neredeyse ortadan kaldıran bir aşağı akışlı proxy veya yük dengeleyici ekleyin.

İlgili konular