Веб-рамкалар server томонидаги веб-дастурларни соддалаштиради
Server-ён веб-рамкалар операциялар анча осон юқорида тасвирланган қилиш учун код ёзиш қилиш.
Улар амалга ошириш енг муҳим операциялар бири URL-адресов для разных махсус handler вазифалари учун турли ресурслар/саҳифалар учун УРЛ хариталаш учун оддий механизмлари билан таъминлаш учун. Бу осон қолган алоҳида ҳар бир ресурс тури билан боғлиқ кодни сақлаб қолиш учун қилади. Бу, шунингдек, нуқтаи бир парваришлаш назаридан афзалликларга ега, агар URLУРЛ бир жойда маълум бир вазифани етказиб учун ишлатиладиган ўзгартириш мумкин, деб, handler вазифасини ўзгартириш керак бўлмасдан.
Мисол учун, қуйидаги Django кўриб (Python) URLикки кўриш функциялари икки УРЛ шаблонлари боғлайди коди. Биринчи Андоза текширади, деб HTTPУРЛ билан ҲТТПURL талаб /енг яхши ресурс индекс номли вазифага ўтиб бўлади index() в модуле Кўришлар modul. "/Бест/junior"намунасига ега бўлган сўров ўрнига junior() кўриниш функсиясига ўтилади.
# файл: best/urls.py
#
fromDjango бошлаб.cонф.УРЛ import урл
дан . importкўринишларни import қилиш
урлпаттернс = [
# мисол:/бест /
урл(р ъ^$ъ, кўриниши.индекси),
# мисол: / енг яхши / junior/
урл(р ъ ^junior/$ъ, Кўришлар.junior),
]
Copy to Хотирага нусха олиш
Еслатма: урл биринчи параметрларни() вазифалари улар бир оз ғалати қараш мумкин (мисол учун, r ъ ^junior/$ъ, улар " мунтазам ифодалар "деб номланган бир нақш таалукли усули фойдаланиш, чунки(RegEx ёки қайта). Сиз бу нуқтада ишлаш қандай мунтазам сўзлар билиш шарт емас, улар бизга УРЛ нақш мос имконини беради, деб бошқа URL(жуда юқорида қаттиқ-кодли қадриятлар нисбатан) ва бизнинг кўриш вазифалари параметрлари сифатида фойдаланиш. Мисол сифатида, албатта, оддий RegEx "томонидан таъқиб бир катта ҳарф мос айтиш мумкин 4 учун 7 кичик ҳарфлар".
Веб-рамка маълумотлар базасидан маълумотларни олиш учун кўриш функциясини ҳам осонлаштиради. Бизнинг маълумотлар тузилиши моделлари белгиланган, Pythonасосий маълумотлар базасида сақланиши керак майдонларини аниқлаш Python дарслари бўлган. Биз бир Team "теам_тйпе_type"соҳасида билан Теам исмли бир model бўлса, биз маълум бир тури бор, барча жамоалар олиш учун оддий сўровлар синтаксиси фойдаланишингиз мумкин.
Қуйидаги мисол аниқ (ҳодиса-сезгир) теам_тйпе_type "junior" барча буйруқлар рўйхатини кўрсатади— форматда еътибор: майдон номи (теам_тйпе_type), бир ер-хотин пастки томонидан таъқиб, ва кейин ўйин тури фойдаланиш ( аниқ, бу ҳолда ). Таалукли кўплаб бошқа турлари ҳам бор, ва биз уларни бирлаштириш мумкин. Биз, шунингдек, қайтиб натижалари тартибини ва сонини назорат қилиш мумкин.
#бест/фикр.пй
fromDjango бошлаб.қисқа клавишлар import тўлов
дан .моделлар import жамоаси
даф junior(талаб):
лист_теамс = жамоа.объектлар.filter(теам _ тйпе _ _ аниқ="junior")
контекст = {ъ рўйхат ъ: лист_теамс}
қайтиш render(талаб, ъ енг яхши / индекс.ҳтмл ъ, контекст)
Copy to Хотирага нусха олиш
После того, как функция Junior()функсиясидан кейин minor буйруқлар рўйхатини олади. бу render()асл Ҳттпреқуест ўтиб, render()вазифасини чақиради HttpRequest, бир ҲТМЛАндоза, вамаълумот белгилайдиган" контекст"объект Андоза киритилган бўлиши. Функция Render() функсияси -бу HTMLконтекст ва ҲТМЛ шаблон ёрдамида ҲТМЛ ҳосилқилувчи ва Ҳттпреспонсе обектига қайтарувчи қулайлик функсияси HttpResponse.
Шубҳасиз, веб-рамкалар бошқа кўплаб вазифалар билан сизга ёрдам бериши мумкин. Кейинги мақолада, биз жуда кўп фойда ва баъзи машҳур веб кесиш имкониятлари муҳокама оламан.
Do'stlaringiz bilan baham: |