Tipik Angular.js iş akışı ve proje yapısı (Python Şişesi ile)
İstemci tarafı çerçeve çılgınlığı* tüm bu MV için oldukça yeni duyuyorum. Angular.js ama ya Knockout, Ember veya Omurga daha bana daha doğal geliyor, çünkü bunu ben seçtim olmak zorunda değil. Zaten iş akışı nasıldır? İnsanlar angular.js -istemci tarafı Uygulama Geliştirme ve sonra arka uç o kadar çengel ile başlar? Ya ilk arka uç Django, Flask, Raylar bina ve angular.js bir uygulama ekleme tersi? "Bunu yapmanın bir yolu, ya da sonunda sadece kişisel bir tercih mi? hakkı var
Ayrıca Şişeye göre projemi ya angular.js yapı mı emin değilim? topluluk uygulamaları.
Örneğin, artıkça minitwit uygulaması gibi yapılandırılmıştır:
minitwit
|-- minitwit.py
|-- static
|-- css, js, images, etc...
`-- templates
|-- html files and base layout
Angular.js öğretici uygulaması bu gibi yapılandırılmıştır:
angular-phonecat
|-- app
`-- css
`-- img
`-- js
`-- lib
`-- partials
`-- index.html
|-- scripts
`-- node.js server and test server files
Gözümün önüne getirebiliyorum bir Flask uygulaması tarafından kendisi ve bunu çok kolay görüyor Angular.js app gibi Yapılacaklar Listesi ile kendini ama geldiğinde onu kullanarak hem bu teknolojiler anlamıyorum nasıl çalışıyorlar birlikte. Neredeyse zaten Angular.js web server yeterli olacaktır basit bir Python var, sunucu tarafında web-çerçeve ihtiyacım yok gibi görünüyor. -Örneğin app Açısal olarak MongoLab veritabanı Dinlendirici bir API kullanarak konuşmak için kullanıyorlar. Gerek web çerçevesi arka uç sahip oldu.
Belki kafam çok karıştı Angular.js hiçbir şey daha bir fantezi jQuery Kütüphanesi yani ben kullanmak istiyorum kullanmak jQuery mataram projeleri (sanırım arada değiştirmek Açısal şablon sözdizimi için bir şey değil çatışma ile Jinja2). Benim sorular biraz mantıklı umarım. Ben özellikle arka uç çalışmak ve bu istemci tarafı çerçeve benim için bilinmeyen bir bölge.
CEVAP
Buradan aşağıdaki gibidir: standart yapısında Flask uygulaması organize ederek başlamak istiyorum
app
|-- app.py
|-- static
|-- css
|-- img
|-- js
|-- templates
Ve btford belirtildiği gibi, Eğer Açısal bir uygulama yapıyorsanız, istemci tarafı Açısal şablonları kullanarak ve uzak sunucu tarafı şablonlardan kalmak odaklanmak istiyorum. Kullanarak render_template ('') Şişeyi senin açısal yorumlamasına neden olur index.html doğru işlemek istemedikleri için jinja şablonlar şablonlar. Bunun yerine, aşağıdakileri yapmak isteyebilirsiniz:
@app.route("/")
def index():
return send_file('templates/index.html')
Send_file kullanmayı unutmayın() dosyaları make_response kullanmak isteyebilirsiniz böylece önbelleğe anlamına gelir() yerine, en azından gelişim için:
return make_response(open('templates/index.html').read())
Daha sonra AngularJS inşa uygulamanızın bir parçası, bu gibi bir uygulama yapısının değiştirilmesi:
app
|-- app.py
|-- static
|-- css
|-- img
|-- js
|-- app.js, controllers.js, etc.
|-- lib
|-- angular
|-- angular.js, etc.
|-- partials
|-- templates
|-- index.html
Senin index.html AngularJS, yanı sıra herhangi bir diğer dosyaları içerir emin olun:
<script src="static/lib/angular/angular.js"></script>
Bu noktada, henüz Dinlendirici bir API inşa etmedin, js denetleyicileri önceden tanımlanmış örnek veri (yalnızca geçici bir kur) geri alabilirsin. Hazır olduğunuzda, Dinlendirici bir API uygulamak ve angular-resource.js ile açısal uygulamanızı izle.
EDİT: birleştirdim bir uygulama şablonu, ama biraz daha karmaşık olan ne yaptım yukarıda açıklanan gösterir nasıl bir dünya inşa bir uygulama ile AngularJS Şişesi, tam ile iletişim arasında AngularJS ve basit bir Şişe API. Eğer bunu kontrol etmek istiyorsanız şu şekilde olur: https://github.com/rxl/angular-flask
Python bir uygulama için en iyi proje ...
Çalışan tipik test dizin yapısı ile un...
Klasör yapısı node.js proje...
Google App Engine için proje yapısı...
İdeal ruby proje yapısı...