TurboGears
ટર્બોગિયર્સ એ પાયથોન વેબ એપ્લિકેશન માળખું છે જેમાં વેબઓબ, એસક્યુએલએકેમી, કાજિકી ટેમ્પલેટ લેંગ્વેજ અને રીપોઝ જેવા કેટલાક ડબલ્યુએસજીઆઈ ઘટકોનો સમાવેશ થાય છે. ટર્બોગિયર્સની રચના મોડલ-વ્યૂ-કંટ્રોલર (એમવીસી) આર્કિટેક્ચરની આસપાસ કરવામાં આવી છે, જે સ્ટ્રટ્સ અથવા રુબી ઓન રેલ્સની જેમ છે, જે પાયથોનમાં ઝડપી વેબ એપ્લિકેશન વિકાસને સરળ અને વધુ જાળવણીક્ષમ બનાવવા માટે રચાયેલ છે. આવૃત્તિ 2.3 થી માળખું "મિનિમલ મોડ" પણ પ્રદાન કરી રહ્યું છે જે તેને એવા વાતાવરણમાં ઉપયોગ માટે માઇક્રોફ્રેમવર્ક તરીકે કામ કરવા માટે સક્ષમ બનાવે છે જ્યાં આખા સ્ટેકની જરૂર નથી અથવા જરૂરી નથી. ટર્બોગિયર્સ ઘટકો ટર્બોગિયર્સ અસંખ્ય અલગ અલગ પુસ્તકાલયો અને મિડલવેરની ટોચ પર બનાવવામાં આવ્યા છે. મૂળભૂત સાધનો 1. x, 2. x અને 2.3 + શ્રેણી વચ્ચે બદલાયા છે, પરંતુ આમાંના મોટાભાગના ઘટકોનો ઉપયોગ ક્યાં તો થઈ શકે છે કારણ કે ઘણા વૈકલ્પિક રૂપરેખાંકનો માટે ટેકો છે. નીચેના પ્રાથમિક ઘટકો છે જેની સાથે વિકાસકર્તા ક્રિયાપ્રતિક્રિયા કરશે. ટર્બોગિયર્સ 2. x ઘટકો SQLAlchemi (મોડેલ)-વપરાશકર્તાના ડેટાબેઝના કોષ્ટક માળખાને વ્યાખ્યાયિત કરે છે અને તેમને પાયથોન ઓબ્જેક્ટ્સ સાથે કેવી રીતે જોડવું તે વપરાશકર્તાના નિયંત્રક સાથે ક્રિયાપ્રતિક્રિયા કરી શકે છે. મિંગ (મોડેલ)-મોંગોડીબી માટે ડેટા એક્સેસ સ્તર પ્રદાન કરે છે, જેમ કે એસક્યુએલએલકેમી એ વ્યાખ્યાયિત કરે છે કે મોંગોડીબી સંગ્રહને પાયથોન ઓબ્જેક્ટ્સ સાથે કેવી રીતે જોડવું કે જેની સાથે વપરાશકર્તાનું નિયંત્રક ક્રિયાપ્રતિક્રિયા કરી શકે છે. કાજિકી (અગાઉ જેનશી) (જુઓ)-વપરાશકર્તા જનરેટ કરશે તે એચટીએમએલ અથવા એક્સએચટીએમએલ માટે નમૂનાઓને વ્યાખ્યાયિત કરે છે. આ તે છે જ્યાં વપરાશકર્તા ક્લાયન્ટ સાથે વાતચીત કરશે તે ફ્રન્ટ-એન્ડને વ્યાખ્યાયિત કરે છે. રીપોઝ-Repoze.who નો ઉપયોગ સુરક્ષા (ઓળખ અને પ્રમાણીકરણ) ને નિયંત્રિત કરવા માટે થાય છે. વપરાશકર્તાઓ નિયંત્રકો સાથે જોડાયેલ આગાહીઓના આધારે અધિકૃતતાના નિયમોને વ્યાખ્યાયિત કરી શકે છે, માળખું પહેલેથી જ કેટલાક બિલ્ટ-ઇન આગાહીઓ પ્રદાન કરે છે, પરંતુ કસ્ટમ નિયમો લખી શકાય છે. ટોસ્કા વિજેટ્સ-સ્વરૂપો અને જટિલ GUI બનાવવા માટેની પ્રાથમિક વિજેટ લાઇબ્રેરી છે. ટોસ્કા મૂળભૂત રીતે સરળ એચટીએમએલ સ્વરૂપો જનરેટ કરશે, પરંતુ વધુ અદ્યતન જાવાસ્ક્રિપ્ટ વિજેટ્સ અને ટૂલકીટ્સ સાથે જોડાવા માટે મિડલવેર તરીકે પણ તેનો ઉપયોગ કરી શકાય છે. ટર્બોગિયર્સ 1. x થી વિપરીત, હવે કોઈ પસંદગીની/સંકલિત જાવાસ્ક્રિપ્ટ લાઇબ્રેરી નથી. ગિયરબોક્સ-એ ટૂલકિટ છે જેનો ઉપયોગ ટર્બોગિયર્સ દ્વારા પ્રોજેક્ટનું સંચાલન કરવા, નવા બનાવવા અને ટર્બોગિયર્સ એપ્લિકેશનોની સેવા આપવા માટે થાય છે પરંતુ વપરાશકર્તા અપાચે, એનજીએનએક્સ અથવા અન્ય કોઈપણ ડબલ્યુએસજીઆઈ-સુસંગત વેબ સર્વર સાથે પણ જોડાઈ શકે છે. 2. 3 પહેલાંની આવૃત્તિઓ પણ ઉપયોગ કરશેઃ પાયલોન્સ (નિયંત્રક)-આ મિડલવેર વપરાશકર્તાના તમામ બેક-એન્ડ તર્કને સંભાળે છે અને વેબ પર ડેટા પ્રદાન કરવા માટે વપરાશકર્તાના વેબ સર્વર સાથે જોડાય છે. પેસ્ટર એ આદેશ ટૂલકિટ અને વેબ સર્વર હતું જેનો ઉપયોગ ગિયરબોક્સની જગ્યાએ થતો હતો. Repoze.what-અનુક્રમે અધિકૃતતાને સંભાળવા માટે વપરાય છે. વેબ સાથે સંપર્કમાં આવવા માટે વપરાશકર્તાના નિયંત્રકના તત્વોને વ્યાખ્યાયિત કરતી વખતે, repoze.what આગાહીઓ વ્યાખ્યાયિત કરે છે કે કોણ તેમને ઍક્સેસ કરી શકે છે અને કઈ શરતો હેઠળ. ટર્બોગિયર્સ 1. x ઘટકો એસક્યુએલઓબીજેક્ટ (મોડેલ)-ડેટા બેકએન્ડ જે ઘણા ડેટાબેઝ સર્વરો પર પ્રવર્તમાન ડેટા સાથે ડેટાબેઝ અથવા ઇન્ટરફેસ બનાવી શકે છે. ટર્બોગિયર્સ> = 1.1 માં SQLAlchemy મૂળભૂત બનશે. કિડ (જુઓ)-એક્સ. એચ. ટી. એમ. એલ. ફ્રન્ટએન્ડ ટેમ્પ્લેટિંગ એન્જિન જ્યાં તમામ નમૂનાઓ માન્ય એક્સ. એચ. ટી. એમ. એલ. અથવા એક્સ. એમ. એલ. ફાઇલો હોય છે જે સામાન્ય રીતે એવી રીતે બનાવવામાં આવે છે કે જે ડિઝાઇનને તપાસવા માટે આ નમૂનાઓને સરળ એક્સ. એચ. ટી. એમ. એલ. ફાઇલો તરીકે ખોલવાની મંજૂરી આપે છે. તે જ સમયે પાયથોનના સ્નિપેટ્સને XMLish રીતે એમ્બેડ કરવા માટે સુવિધાઓ પ્રદાન કરવામાં આવે છે. જેનશી કિડના અનુગામી છે અને તેને ટર્બોગિયર્સ> = 1.1 માં ડિફોલ્ટ ટેમ્પ્લેટિંગ એન્જિન તરીકે બદલશે. તે લગભગ 100% વાક્યરચના-સુસંગત છે. ચેરીપાઈ (નિયંત્રક)-મિડલવેર જે વેબ એપ્લિકેશનોને ઇવેન્ટ હેન્ડલર્સ લખીને પ્રોગ્રામ કરવાની મંજૂરી આપે છે જે (ટર્બોગિયર્સના કિસ્સામાં) નમૂનાઓમાં ડેટા પરત કરે છે. આ જ માહિતી એજેક્સ શૈલીમાં પણ JSON માહિતી પ્રવાહ તરીકે પ્રાપ્ત કરી શકાય છે. મોચીકિટ એ ટર્બોગિયર્સ 1. x માટે પસંદગીની, પરંતુ વૈકલ્પિક જાવાસ્ક્રિપ્ટ લાઇબ્રેરી છે. તે જાવાસ્ક્રિપ્ટમાં પ્રોગ્રામિંગને વધુ પાયથોનિક બનાવવા માટે રચાયેલ છે. તેનો ઉપયોગ મોટાભાગે એજેક્સ સુવિધાઓ અને વિજેટ્સના અમલીકરણ માટે થાય છે કારણ કે તે અસિંક્રોનસ રીતે જે. એસ. ઓ. એન. ડેટા સ્ટ્રીમ્સ મેળવવા માટે ઇન્ટરફેસ પ્રદાન કરે છે. ટેમ્પલેટ પ્લગઇન્સ જેન્શી સિવાયની ટેમ્પલેટિંગ ભાષાઓનો ઉપયોગ વપરાશકર્તાની એપ્લિકેશનની રૂપરેખાંકન ફાઇલ દ્વારા કરી શકાય છે. હાલમાં 2.1 માં સપોર્ટેડ પ્લગઇનોમાં મિઘ્ટી, જિંજા2, માકો, ચિત્તા અને કાજિકી છે. જેન્શી લગભગ સમાન હોવાથી હાલમાં બાળ સહાયની યોજના નથી. આ યાદી ભવિષ્યની આવૃત્તિઓમાં બદલાતી રહી શકે છે. ટર્બોગિયર્સ મૂળરૂપે 2005 માં કેવિન ડાંગૂર દ્વારા હજી સુધી અપ્રકાશિત ઝેસ્ટી ન્યૂઝ ઉત્પાદન પાછળના માળખા તરીકે બનાવવામાં આવ્યું હતું. સપ્ટેમ્બર 2005ના અંતમાં જ્યારે તેમણે તેને ઓપન સોર્સ ફ્રેમવર્ક તરીકે રજૂ કર્યું, ત્યારે તેને પ્રથમ 3 મહિનામાં 30,000થી વધુ સ્ક્રીનકાસ્ટ ડાઉનલોડ્સ મળ્યા હતા. જાન્યુઆરી 2007માં કેવિન ડાંગૂર પ્રોજેક્ટ લીડર તરીકે નિવૃત્ત થયા હતા અને આલ્બર્ટો વાલ્વર્ડેએ તેમના અનુગામી તરીકે પ્રોજેક્ટનું સંચાલન કર્યું હતું, પરંતુ ત્યારબાદ અન્ય વ્યક્તિગત પ્રતિબદ્ધતાઓને કારણે તેમણે પદ છોડ્યું હતું. આલ્બર્ટો હજુ પણ તેમના ટોસ્કા વિજેટ્સ પ્રોજેક્ટ દ્વારા ટર્બોગિયર્સ સમુદાયમાં સામેલ છે. ટર્બોગિયર્સ પ્રોજેક્ટનું સંચાલન હવે માર્ક રામ (ટર્બોગિયર્સ 2 ડેવલપમેન્ટ લીડ તરીકે) અને ફ્લોરેન્ટ એઇડ (ટર્બોગિયર્સ 1. x રિલીઝ મેનેજર તરીકે) ના નેતૃત્વ હેઠળ લગભગ અડધો ડઝન કોર ડેવલપર્સના જૂથ દ્વારા સંયુક્ત રીતે કરવામાં આવે છે. જૂન 2007માં સમુદાયે પાયલોન્સમાં ઉપયોગમાં લેવાતા ઘટકો અને પ્રોટોકોલની ટોચ પર ટર્બોગિયર્સ API મૂકવા માટે પ્રયોગો શરૂ કર્યા હતા અને એવી અટકળો હતી કે બંને માળખાઓ આખરે મર્જ થઈ શકે છે. જો કે, સત્તાવાર ટર્બોગિયર્સ 2 દસ્તાવેજીકરણ જણાવે છે કે બંને પ્રોજેક્ટની "અલગ, પરંતુ સુસંગત પ્રાથમિકતાઓ" ને કારણે આવું થવાની સંભાવના નથી. પાયલોન્સ નીચા સ્તરની, વિસ્તૃત ડિઝાઇન પર ધ્યાન કેન્દ્રિત કરવા માંગતા હતા જ્યારે ટર્બોગિયર્સ સંપૂર્ણ, વપરાશકર્તા-મૈત્રીપૂર્ણ પેકેજ પ્રદાન કરવા પર ધ્યાન કેન્દ્રિત કરતું હતું, અને તેથી બંને હવે ડેબિયન અને ઉબુન્ટુની જેમ જ કામ કરે છે. નવી 2. x શાખાનું પ્રથમ સ્થિર પ્રકાશન મે 2009માં થયું હતું. 2008ના અંત સુધીમાં, ટર્બોગિયર્સ પાસે ટર્બોગિયર્સ મેઇલિંગ સૂચિ પર 3000 થી વધુ વપરાશકર્તાઓ સાથે એક વિશાળ અને તંદુરસ્ત સમુદાય છે, નવેમ્બર '06માં પ્રકાશિત પ્રેન્ટિસ હોલનું એક પુસ્તક અને સંખ્યાબંધ ઓપન-સોર્સ અને માલિકીની ટર્બોગિયર્સ એપ્લિકેશનો વાસ્તવિક દુનિયામાં તૈનાત છે. વિકાસ મધ્યમ પરંતુ સ્થિર ગતિએ આગળ વધે છે અને 2008 અને 2009 માં ગૂગલ સમર ઓફ કોડ માર્ગદર્શન સંસ્થા તરીકે પ્રોજેક્ટની સફળ ભાગીદારી દ્વારા પણ તેને પ્રોત્સાહન આપવામાં આવ્યું હતું. ટર્બો ગિયર્સ 1.1, જેનો હેતુ વારસાની સાઇટ્સને 2. x પર સંક્રમણ કરવામાં મદદ કરવાનો છે, તે ઓક્ટોબર 2009 માં રજૂ કરવામાં આવી હતી. ટર્બોગિયર્સ 2 દ્વારા લાવવામાં આવેલા ફેરફારોને અનુરૂપ તેને અપડેટ કરવા માટે પુસ્તકનું નવું પુનરાવર્તન કરવામાં આવી રહ્યું છે. 2010 માં, આ પ્રોજેક્ટ કંઈક અંશે નિષ્ફળ ગયો. મુખ્ય વિકાસકર્તાઓને વાસ્તવિક જીવનની સમસ્યાઓને કારણે દૂર બોલાવવામાં આવ્યા હતા. જાન્યુઆરી, 2011 ના અંત સુધીમાં, જોકે, પ્રોજેક્ટનું પુનર્ગઠન કરવાનું અને પાટા પર પાછા ફરવા પર કામ કરવાનું શરૂ કરી દીધું હતું. ઘણા મહિનાઓ સુધી માળખાગત સુવિધાઓ મેળવ્યા પછી અને કોડિંગ મુદ્દાઓ પર કામ કર્યા પછી, ટર્બોગિયર્સ નવી આવૃત્તિઓ (2.0.4 અને 2.1.2) રજૂ કરવામાં સફળ રહી છે. 2013 માં, પછાત સુસંગતતા જાળવી રાખતી વખતે, પ્રોજેક્ટ પાયથોન 3 ને ટેકો આપવા માટે પાયલોન્સ કોડબેઝથી દૂર ખસેડવામાં આવ્યો છે, સ્પીડ અપ્સ અને સરળ ઇન્સ્ટોલેશન પ્રક્રિયા પ્રદાન કરે છે. આના કારણે ઓગસ્ટ 2013માં આવૃત્તિ 2.3નું વિમોચન થયું હતું. તેને ઝડપી પ્રકાશન ચક્રની પણ જાહેરાત કરવામાં આવી છે જે દર ~ 3 મહિનામાં જાળવણી પ્રકાશન તરફ દોરી જશે. ફ્યુચર ઓફ ટર્બોગિયર્સ ટર્બોગિયર્સનો વિકાસ હવે મુખ્યત્વે નવી 2. x શાખા પર કેન્દ્રિત છે, જેની આવૃત્તિ 2.3 હવે પાયથોન 3 સપોર્ટ સાથે મુખ્ય ટ્રેક છે. 1. x શાખામાંથી 2. x શાખામાં સંક્રમણ માર્ગ 1.1 અને 1.5 પ્રકાશનો દ્વારા પ્રદાન કરવામાં આવે છે જે મૂળભૂત ORM અને ટેમ્પ્લેટિંગ ભાષાઓને 2.4 શ્રેણી દ્વારા ઉપયોગમાં લેવાતી ભાષા સાથે મેળ કરવા માટે ખસેડે છે. ટર્બોગિયર્સ ટીમે નવા વપરાશકર્તાઓને સ્પષ્ટ કર્યું કે 2. x એ ભવિષ્ય છે, અને 1. x માત્ર હાલના વપરાશકર્તાઓની સુવિધા માટે જાળવવામાં આવે છે. 2011 દરમિયાન ટર્બોગિયર્સના મુખ્ય વિકાસકર્તાઓ પાયલોન્સ પ્રોજેક્ટ સાથે તેમની સાથે અને Repoze.BFG ના વિકાસકર્તાઓ સાથે પિરામિડ નામના નવા એકીકૃત પ્રોજેક્ટ તરીકે જોડાવા માટે વાતચીત કરી રહ્યા છે. પછાત સુસંગતતાના મુદ્દાઓને કારણે આ પગલું હશે, અને બાંયધરીકૃત ટર્બોગિયર્સ લાંબા ગાળે એક વિશ્વસનીય પ્લેટફોર્મ રહે છે, વર્તમાન ટીમે શક્ય તમામ બાબતો પર પાયલોન્સ પ્રોજેક્ટ સાથે સહયોગ કરવાનું નક્કી કર્યું પરંતુ ટર્બોગિયર્સ કોરને પિરામિડ પર આધારિત નહીં કરવાનું નક્કી કર્યું. ભવિષ્યનો વિકાસ, પાયથોન 3 સપોર્ટ અને ઝડપમાં સુધારાઓ 2.3 શાખામાં થયા છે, જેમાં ટર્બોગિયર્સ કોરનું સંપૂર્ણ પુનર્લેખન જોવા મળ્યું છે, જ્યારે તેને હાલની એપ્લિકેશનો સાથે પછાત સુસંગત રાખે છે, કારણ કે તે પ્રકાશન ટર્બોગિયર્સ પાયલોન્સ માળખા પર આધારિત હોવાને બદલે તેનો પોતાનો કોર હતો. 2. 3 શ્રેણી દરમિયાન માળખું કહેવાતા "મિનિમલ મોડ" સાથે પ્રયોગ કરી રહ્યું છે, જે તેને માઇક્રો-ફ્રેમવર્ક તરીકે કામ કરવા સક્ષમ બનાવે છે, જે વાસ્તવિક રીતે અવલંબનને દસથી ઘટાડીને માત્ર 3 સુધી ઘટાડે છે અને તેના હેતુઓ માટે પાયથોન માળખાના ગુલાબમાં ફ્લાસ્ક અને જેંગો વચ્ચે ટર્બોગિયર્સને સ્થાન આપે છે, કારણ કે તેનો હેતુ ટર્બોગિયર્સ 2 અથવા tg.devtools પેકેજનો ઉપયોગ કરવામાં આવે છે તે હકીકત પર આધાર રાખીને માઇક્રો-ફ્રેમવર્કથી ફુલ-સ્ટેક ફ્રેમવર્ક સુધી માપવામાં સક્ષમ બનવાનો છે. આવૃત્તિ 2.4 થી માળખામાં હવે મોડ્યુલર ઘટકો આધારિત માળખું છે, જે વપરાશકર્તાઓને તેમની ઇચ્છા મુજબ ઘટકોને સક્ષમ કરવા અને બદલવાની મંજૂરી આપે છે, આમ ટર્બોગિયર્સ ખરેખર વેબ માળખું બનવાના તેના ધ્યેયને અનુસરે છે જે વપરાશકર્તાઓની જરૂરિયાતોને માપે છે. વેબ માળખાની જેંગો સરખામણી સંદર્ભો રામ, એમ; ડાંગૂર, કે; સેફાન, જી (નવેમ્બર 7,2006) પણ જુઓ. ટર્બોગિયર્સ, પ્રેન્ટિસ હોલ સાથે ઝડપી વેબ એપ્લિકેશન્સ. નોંધો બાહ્ય કડીઓ ટર્બોગિયર્સ હોમપેજ પાયથોન (પ્રોગ્રામિંગ લેંગ્વેજ) સોફ્ટવેર પાયથોન (પ્રોગ્રામિંગ લેંગ્વેજ) વેબ ફ્રેમવર્ક સોફ્ટવેર એમઆઇટી લાઇસન્સનો ઉપયોગ કરે છે