1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:03,227 [Музички] 3 00:00:03,227 --> 00:00:04,705 4 00:00:04,705 --> 00:00:05,830 EZRA ZIGMOND: Здраво, на сите. 5 00:00:05,830 --> 00:00:08,020 Ви благодариме за кои доаѓаат од денес. 6 00:00:08,020 --> 00:00:10,660 Овој семинар е "Пајтон Веб апликации со колба. " 7 00:00:10,660 --> 00:00:14,510 >> Па, јас ќе одам да се зборува малку за тоа зошто 8 00:00:14,510 --> 00:00:17,400 можеби ќе сакате да го користите да се направи Колба веб апликации со Python, наспроти 9 00:00:17,400 --> 00:00:21,556 на некои други рамки таму, како Џанго, кој е најстариот познат. 10 00:00:21,556 --> 00:00:24,330 Поднаслов е "и peewee ", што е нешто 11 00:00:24,330 --> 00:00:27,250 ние ќе треба да се зборува за тоа како за да комуницирате со SQL бази на податоци. 12 00:00:27,250 --> 00:00:29,610 Тоа го прави тоа навистина убаво. 13 00:00:29,610 --> 00:00:32,390 >> Значи, тука е само брз преглед на она што сакам да го поминат. 14 00:00:32,390 --> 00:00:35,520 Значи, прво, само еден слајд кој ќе биде quickstart, 15 00:00:35,520 --> 00:00:38,530 што е тоа како да се добие сè постави на вашиот компјутер. 16 00:00:38,530 --> 00:00:41,760 Одам да се демонстрира ова на мојата локална Mac машина, 17 00:00:41,760 --> 00:00:45,220 само затоа што тоа е каде што јас го направив ова пред, јас сум многу удобно со него, 18 00:00:45,220 --> 00:00:48,510 но ова е дефинитивно можно на CD50 ИРО. 19 00:00:48,510 --> 00:00:52,050 >> Значи, после тоа, сакам да Колба воведе она што е, 20 00:00:52,050 --> 00:00:55,089 и ви убедат зошто треба да го користат во на прво место. 21 00:00:55,089 --> 00:00:56,880 Тогаш, јас ќе даде брз пример на она што 22 00:00:56,880 --> 00:01:00,550 може да го направи во колба, брз пример на она што можете да направите во peewee, 23 00:01:00,550 --> 00:01:05,010 а потоа јас ќе ви покаже повеќе комплетен пример апликација 24 00:01:05,010 --> 00:01:07,520 дека јас се стави заедно што ние да прошетка низ заедно. 25 00:01:07,520 --> 00:01:10,040 >> А потоа, конечно, во последниот слајд, имам 26 00:01:10,040 --> 00:01:12,730 некои ресурси да го погледнете на интернет, за повеќе информации. 27 00:01:12,730 --> 00:01:15,560 Ова не е комплетната туториал за тоа како да ги користат колба. 28 00:01:15,560 --> 00:01:18,140 А јас ќе се надевам да ја напушти извесно време за прашања. 29 00:01:18,140 --> 00:01:21,050 Секој гледа на локално ниво, само како, извикам во средината 30 00:01:21,050 --> 00:01:22,340 ако имате било какви прашања. 31 00:01:22,340 --> 00:01:27,150 >> Толку брзо работи инсталација, ако сакате да го следат заедно, 32 00:01:27,150 --> 00:01:29,240 или ако сакате да го добивате ова на своја машина, 33 00:01:29,240 --> 00:01:32,440 Одам да биде со користење на Python 2.7.10. 34 00:01:32,440 --> 00:01:35,860 Колба работи со Пајтон 3, но ми се допаѓа 35 00:01:35,860 --> 00:01:38,660 користење Пајтон 2, затоа што има Пајтон некои пакети кои 36 00:01:38,660 --> 00:01:40,910 не работат со 3 уште. 37 00:01:40,910 --> 00:01:44,800 Ако пипка имате инсталирано, што е менаџер Пајтон пакет, 38 00:01:44,800 --> 00:01:48,190 Мислам дека ако вашиот Python е поголема од или еднаква на 2.7.9, 39 00:01:48,190 --> 00:01:52,220 ќе ја имаат веќе инсталиран, тоа е супер лесно да се инсталира овие пакети. 40 00:01:52,220 --> 00:01:54,990 >> Можете да го инсталирате пипка Колба, PIP инсталирате peewee, 41 00:01:54,990 --> 00:01:58,600 обично мора да се работи само sudo така што дозволи да работат надвор. 42 00:01:58,600 --> 00:02:01,080 И, ако сте со користење на супер верзија на Пајтон стари, 43 00:02:01,080 --> 00:02:05,100 Препорачувам ажурирање на вашиот Пајтон, или со користење EasyInstall да инсталирате пипка. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 Значи, следното прашање е, што е Колба? 46 00:02:11,120 --> 00:02:13,280 И претпоставувам, прво разумно прашање прашував 47 00:02:13,280 --> 00:02:15,585 за долго време е, што е веб стан? 48 00:02:15,585 --> 00:02:17,960 Затоа што тоа е збор кој јас дека е фрлени околу многу 49 00:02:17,960 --> 00:02:19,240 дека јас навистина не знам. 50 00:02:19,240 --> 00:02:22,340 И мислам дека најдобар пример на она што веб апликација е, 51 00:02:22,340 --> 00:02:26,960 навистина е CS50 финансии, каде тоа не е навистина само еден веб-сајт, 52 00:02:26,960 --> 00:02:29,320 но тоа е нешто што ќе можеше вид комуницирате со. 53 00:02:29,320 --> 00:02:31,736 Постојат кориснички сметки и на сите видови на различни нешта. 54 00:02:31,736 --> 00:02:35,010 Значи, каде што точно ќе се нацрта на линија помеѓу она што е веб-сајт, 55 00:02:35,010 --> 00:02:38,780 и она што е веб апликација, е вид на произволна, но претпоставувам дека идејата, 56 00:02:38,780 --> 00:02:42,110 тоа е нешто повеќе од еден веб-сајт и тоа е корисна апликација. 57 00:02:42,110 --> 00:02:46,081 >> Значи, Колба е рамка за изработка на веб апликации со користење Пајтон. 58 00:02:46,081 --> 00:02:48,330 И се надевам дека до крајот на ова, јас ќе ве убеди 59 00:02:48,330 --> 00:02:52,210 и дека всушност може да напише нешто како CS50 финансии користење Пајтон, која јас 60 00:02:52,210 --> 00:02:53,950 како многу подобро отколку на PHP, лично. 61 00:02:53,950 --> 00:02:57,320 >> Значи, Колба е, тие го нарекуваат microframework, со што, 62 00:02:57,320 --> 00:02:59,800 тие мислат дека е многу едноставна, но растеглива. 63 00:02:59,800 --> 00:03:02,980 Така, таа има само она што ви треба, но ако сакате повеќе функции, 64 00:03:02,980 --> 00:03:04,522 тоа е лесно да им ги претстават. 65 00:03:04,522 --> 00:03:06,480 Но, само затоа што тоа е microframework, не го прави тоа 66 00:03:06,480 --> 00:03:08,960 значи дека тоа е само за мали проекти. 67 00:03:08,960 --> 00:03:12,590 Јас имам еден линк тука за кој се вели дека дека Обама се користат Колба во 2012 година 68 00:03:12,590 --> 00:03:14,410 средства за својата кампања веб-страница, која се надевам дека, 69 00:03:14,410 --> 00:03:16,937 е некој вид на поддршка. 70 00:03:16,937 --> 00:03:18,770 Но, она што можам Навистина ми се допаѓа во врска со Колба 71 00:03:18,770 --> 00:03:22,401 е тоа што, тоа не е навистина прават било кој вид на одлуки за вас. 72 00:03:22,401 --> 00:03:24,150 Само затоа што сме Станува збор за веб-апликации, 73 00:03:24,150 --> 00:03:26,940 Морам да го споредуваат со Ruby on Шини и Џанго, и на кои 74 00:03:26,940 --> 00:03:30,450 се големи рамки, но тие двајцата се прават претпоставки 75 00:03:30,450 --> 00:03:33,600 за тоа како сакате да го комуницирате со бази на податоци, 76 00:03:33,600 --> 00:03:36,900 како сакате да ја покажете вашата ставови, и тие се дефинитивно 77 00:03:36,900 --> 00:03:38,850 добрите страни на тоа. 78 00:03:38,850 --> 00:03:41,490 >> На пример, Ruby on Rails има оваа активен систем на евиденција, 79 00:03:41,490 --> 00:03:43,100 која е навистина убав начин на интеракција со податоци, 80 00:03:43,100 --> 00:03:45,960 Но, ако сакате да го користите на Руби Шини, ти си вид на врзани во тоа. 81 00:03:45,960 --> 00:03:47,835 Но со колба, како што јас ќе ви покаже со peewee, 82 00:03:47,835 --> 00:03:49,830 можете да го користите било кој вид на базата на податоци што го сакате, 83 00:03:49,830 --> 00:03:53,980 и вие само може да се повлече дека во како продолжување во колба. 84 00:03:53,980 --> 00:03:56,350 >> Па тоа е зошто јас навистина како Колба, тоа е тоа што 85 00:03:56,350 --> 00:04:01,170 не прават претпоставки за вас врз основа на работи што не треба, навистина. 86 00:04:01,170 --> 00:04:04,440 >> Значи, зошто треба да се користи Колба? 87 00:04:04,440 --> 00:04:08,230 Предностите се, тоа само има навистина основни карактеристики 88 00:04:08,230 --> 00:04:09,420 вградени во него кои ви се потребни. 89 00:04:09,420 --> 00:04:11,980 Значи, вие не мора да се грижите за разбирање на целиот куп на работи 90 00:04:11,980 --> 00:04:13,175 што навистина не треба. 91 00:04:13,175 --> 00:04:15,060 Вие не треба да мора да се грижите за исклучување карактеристики 92 00:04:15,060 --> 00:04:16,620 што навистина не треба. 93 00:04:16,620 --> 00:04:21,082 >> И, како што рековме, тоа е супер лесен за да додадете во проширувања на работите 94 00:04:21,082 --> 00:04:21,790 кои ви се потребни. 95 00:04:21,790 --> 00:04:24,700 Некои од нив, Колба има сопствените поддршка за тоа. 96 00:04:24,700 --> 00:04:28,230 Значи има нешто што се нарекува Колба админ, која огледала дека админ 97 00:04:28,230 --> 00:04:32,060 комисија која обезбедува Џанго, кој ви дава убав визуелен начин 98 00:04:32,060 --> 00:04:33,405 за администрирање на вашиот вебсајт. 99 00:04:33,405 --> 00:04:35,280 Но, повторно, ако сте правејќи нешто едноставно, 100 00:04:35,280 --> 00:04:39,550 веројатно не треба голема админ лента, така што мислам дека е супер убаво. 101 00:04:39,550 --> 00:04:45,940 И недостатоци се, дека имате помалку енергија надвор од кутијата. 102 00:04:45,940 --> 00:04:49,660 Значи, кога за прв пат се отвори колба, и во вашата програма, python, 103 00:04:49,660 --> 00:04:53,150 само го пишувате од Колба увоз *, или што, 104 00:04:53,150 --> 00:04:55,957 точно не ги добиете сите од карактеристики ви се потребни. 105 00:04:55,957 --> 00:04:58,540 И така треба да се поексплицитно листата на карактеристики што го сакате. 106 00:04:58,540 --> 00:05:01,990 Значи тоа е еден недостаток, но јас мислам дека за изградба на мали веб- 107 00:05:01,990 --> 00:05:04,782 апликации како јас ќе одам да се прикажува вас, тоа не е навистина проблем. 108 00:05:04,782 --> 00:05:07,281 И она последното нешто што е требало да се каже, што е печатна грешка, 109 00:05:07,281 --> 00:05:10,240 е дека има помалку стандардизирани конвенции за тоа како да ги користат колба, 110 00:05:10,240 --> 00:05:12,400 само затоа што таму не се толку многу луѓе кои го користат за професионално 111 00:05:12,400 --> 00:05:13,191 во споредба со Џанго. 112 00:05:13,191 --> 00:05:16,380 Значи, ако се погледне нешто како: "Како можам да се направи x" во Џанго, 113 00:05:16,380 --> 00:05:18,190 најверојатно ќе го најдете. 114 00:05:18,190 --> 00:05:20,260 >> Има добар дизајн шеми можете да го користите, 115 00:05:20,260 --> 00:05:22,660 но со колба, тоа е вид на одат на свој начин, 116 00:05:22,660 --> 00:05:24,850 само затоа што тоа е прилично мала библиотека. 117 00:05:24,850 --> 00:05:27,100 Значи тоа се недостатоци, но мислам дека 118 00:05:27,100 --> 00:05:29,370 дека тоа е уште една добра библиотека да се користи. 119 00:05:29,370 --> 00:05:31,909 >> Па да скокаат право во колба. 120 00:05:31,909 --> 00:05:34,200 Ова е дефинитивно не се случува да биде комплетна туториал, 121 00:05:34,200 --> 00:05:37,480 но тоа е за да ви даде идеја за тоа како да структура работи, 122 00:05:37,480 --> 00:05:40,790 и така ќе се чувствуваат удобно и оди надвор и да гледа во документацијата 123 00:05:40,790 --> 00:05:42,570 и да дознаат повеќе. 124 00:05:42,570 --> 00:05:48,500 >> Па, дозволете ми да се отвори навистина едноставен пример на прв, 125 00:05:48,500 --> 00:05:50,737 и она што ќе се покаже изгледа, а потоа ние ќе 126 00:05:50,737 --> 00:05:52,070 скрши го долу малку повеќе. 127 00:05:52,070 --> 00:05:56,160 >> Па ова тука, дозволете ми да го работи. 128 00:05:56,160 --> 00:06:06,800 129 00:06:06,800 --> 00:06:09,750 Значи, јас сега имаат примена моите работи. 130 00:06:09,750 --> 00:06:15,910 Одам да се отвори Safari, и тоа е водење на моите локалниот компјутер. 131 00:06:15,910 --> 00:06:19,360 Па јас сум само ќе се направи овој поголем. 132 00:06:19,360 --> 00:06:23,960 Но localhost: 5000 133 00:06:23,960 --> 00:06:27,650 >> И така, во моментов, сето ова го прави тоа е, кога ќе ја посетите веб-сајтот, 134 00:06:27,650 --> 00:06:31,490 тоа отпечатоци од "Здраво Колба" што не е супер корисни, 135 00:06:31,490 --> 00:06:34,630 но мислам дека тоа е кул во оваа мала датотека тука, 136 00:06:34,630 --> 00:06:37,390 имаме веб серверот се извршува кој е печатење на нешто. 137 00:06:37,390 --> 00:06:40,500 Значи, ајде да всушност изгледаат на код за втор, 138 00:06:40,500 --> 00:06:43,080 и да го срушат малку. 139 00:06:43,080 --> 00:06:45,260 Е со големина добра за сите тука? 140 00:06:45,260 --> 00:06:51,560 >> Така, веројатно, ти си донекаде удобно користење Пајтон. 141 00:06:51,560 --> 00:06:55,820 Јас сум под претпоставка дека ние може да се погледне Пајтон и да чита преку неа. 142 00:06:55,820 --> 00:06:59,290 Ако имате било какви прашања во врска со ништо, јас, исто така, може да се оди над тоа. 143 00:06:59,290 --> 00:07:03,974 >> Па на првата линија е, од колба, ние увоз, Колба со голема "Ф" 144 00:07:03,974 --> 00:07:06,140 кој е вид на сите клучните карактеристики кои ви се потребни. 145 00:07:06,140 --> 00:07:08,890 Секогаш кога сте пишување датотека и користење колба, 146 00:07:08,890 --> 00:07:12,120 сте ќе сакате да го внесете тој, само затоа што ги има сите главни работи. 147 00:07:12,120 --> 00:07:15,400 Следното нешто што го правиме, е ние повик оваа функција колба, само 148 00:07:15,400 --> 00:07:19,270 да се создаде еден стан на објектот, а ти си секогаш ќе сакате да го направите тоа. 149 00:07:19,270 --> 00:07:25,960 >> А потоа, скокање надолу кон дното брзо, овој дел тука е, 150 00:07:25,960 --> 00:07:28,760 '== if_name _ "_ main_" ", кој е вид на конвенцијата на Пајтон. 151 00:07:28,760 --> 00:07:32,750 Па ова ќе се изврши само ако ја извршите оваа датотека директно користење Пајтон. 152 00:07:32,750 --> 00:07:36,040 Тогаш, ние го нарекуваме app.run, кој ќе всушност ја стартувате апликацијата оди. 153 00:07:36,040 --> 00:07:39,570 >> Значи, тоа е главната структура која ќе треба во било која апликација колба, 154 00:07:39,570 --> 00:07:48,550 се ќе имате овој стан = колба (_name_), а потоа app.run. 155 00:07:48,550 --> 00:07:54,940 >> Така, две работи дека имам овде, се она што ние го нарекуваме правци. 156 00:07:54,940 --> 00:07:57,150 Значи, ајде да зборуваме за рутирање малку повеќе. 157 00:07:57,150 --> 00:07:58,430 Ќе се врати за да го лизгачот. 158 00:07:58,430 --> 00:08:02,540 >> Па најфундаменталните концепт во Колба е рутирање. 159 00:08:02,540 --> 00:08:06,750 И тоа е идејата дека доделите функции во Python 160 00:08:06,750 --> 00:08:11,280 на одредени адреси на вашиот веб-страница. 161 00:08:11,280 --> 00:08:13,930 Така, секогаш кога сакате да се создаде нова траса, 162 00:08:13,930 --> 00:08:16,500 го користите овој @ app.route функција декоратер. 163 00:08:16,500 --> 00:08:19,770 Значи, ако сте запознаени со функција декоратори во Python, 164 00:08:19,770 --> 00:08:24,160 тоа е овој концепт кој ви овозможува снимање на функција 165 00:08:24,160 --> 00:08:26,800 и опкруженоста со нешто друго. 166 00:08:26,800 --> 00:08:30,140 >> Значи, навистина, она што го прави овој декоратер, е дека е потребно на функцијата под него, 167 00:08:30,140 --> 00:08:33,409 и се додава повеќе информации на тоа, но она што, всушност, колба 168 00:08:33,409 --> 00:08:37,480 се направи што се случуваат не е супер од клучно значење, но она што е важно, 169 00:08:37,480 --> 00:08:43,640 е дека пред пат, стави ова @ app.route, а потоа 170 00:08:43,640 --> 00:08:46,480 адреса на трасата, па црта е она што ние 171 00:08:46,480 --> 00:08:48,360 видов кога ние само се отвори веб-страница. 172 00:08:48,360 --> 00:08:49,580 Значи тоа е почетната страница. 173 00:08:49,580 --> 00:08:51,037 Тоа е само патот коса црта. 174 00:08:51,037 --> 00:08:52,370 А потоа ќе ја имаат оваа функција. 175 00:08:52,370 --> 00:08:54,453 Името на функцијата може да биде она што го сакате. 176 00:08:54,453 --> 00:08:56,930 Тоа не мора да значи да треба да направите со трасата. 177 00:08:56,930 --> 00:08:59,440 И потоа, без оглед на враќање на функцијата, 178 00:08:59,440 --> 00:09:01,730 функцијата треба да се врати на стрингот. 179 00:09:01,730 --> 00:09:03,740 И дека стрингот може да содржи HTML или ништо, 180 00:09:03,740 --> 00:09:06,920 а тоа е токму она што ќе се добие се вратил во вашиот веб прелистувач за што се HTML, 181 00:09:06,920 --> 00:09:08,200 и тоа ќе го направи тоа. 182 00:09:08,200 --> 00:09:12,030 >> Значи ова е истиот код тоа беше од примерот 183 00:09:12,030 --> 00:09:16,430 дека јас само истрча, па кога ќе ја посетите коса црта, го нарекува Здраво Светот функција, која 184 00:09:16,430 --> 00:09:20,470 само враќа стринг, Здраво колба, и кој добива печатено на екранот. 185 00:09:20,470 --> 00:09:27,290 >> Па таму е уште еден пример, која е, кога ќе ја посетите / здраво, 186 00:09:27,290 --> 00:09:30,370 тоа отпечатоци од Здраво збор, која всушност, треба да се каже, Здраво, 187 00:09:30,370 --> 00:09:32,010 но, ајде да се преправа дека е намерно. 188 00:09:32,010 --> 00:09:35,140 Значи, да се повлече дека се вистински брз. 189 00:09:35,140 --> 00:09:41,290 >> Па ако одиме на локалниот компјутер / здраво, сега тој ќе се печати нешто друго. 190 00:09:41,290 --> 00:09:45,680 Па тоа е само еден брз пример за тоа како можете да креирате два различни правци. 191 00:09:45,680 --> 00:09:50,630 >> Значи, до сега, тоа не е супер корисни, не постои во целина многу што можете да направите, 192 00:09:50,630 --> 00:09:55,360 може само да направи сето она што со имаат различни HTML страници, 193 00:09:55,360 --> 00:09:58,000 и кога ќе ја посетите одреден Страница тоа само страната товари. 194 00:09:58,000 --> 00:10:00,864 Да видиме некои повеќе корисни работи што можете да направите. 195 00:10:00,864 --> 00:10:03,780 Значи, едно нешто што може да имаат забележан во пример дека јас извадив 196 00:10:03,780 --> 00:10:07,160 нагоре, е дека сум го app.run (debug = true). 197 00:10:07,160 --> 00:10:09,580 И така, она што овој аргумент debug не, е 198 00:10:09,580 --> 00:10:14,600 дека кога ќе се кандидира на вашиот веб сервер, кога сте во вашата апликација, 199 00:10:14,600 --> 00:10:18,100 Ако го промените датотеката, таа ќе автоматски ја превчитате серверот. 200 00:10:18,100 --> 00:10:21,160 >> И така да не се всушност треба да рестарт Пајтон, што е супер корисни. 201 00:10:21,160 --> 00:10:24,020 Јас може да се покаже дека. 202 00:10:24,020 --> 00:10:26,960 Дозволете ми да се повлече до мојот код со печатна грешка во него, 203 00:10:26,960 --> 00:10:30,420 и се преправаме дека печатна грешка беше ставен таму намерно за поучни цели. 204 00:10:30,420 --> 00:10:31,625 Па ајде да го додадете ова назад во. 205 00:10:31,625 --> 00:10:33,140 Па сега тоа вели Здраво светот. 206 00:10:33,140 --> 00:10:34,410 Јас ќе ја спаси. 207 00:10:34,410 --> 00:10:36,540 А ако се повлечат нагоре терминал, ќе 208 00:10:36,540 --> 00:10:39,520 велат дека тоа е рестартирање, поради тоа што пронајдена промена, 209 00:10:39,520 --> 00:10:43,620 па сега кога повторно пробајте, тоа ќе го испечатите правилна работа. 210 00:10:43,620 --> 00:10:45,630 >> Па debug е супер корисни за тоа. 211 00:10:45,630 --> 00:10:48,740 Исто така, ако имате било какви вид на несреќа, така 212 00:10:48,740 --> 00:10:54,370 дозволете ми да се направи овој паѓањето на апликацијата со тоа што таа не се врати стринг. 213 00:10:54,370 --> 00:10:57,540 Значи, ајде само да го има врати Никој поради некоја причина. 214 00:10:57,540 --> 00:11:00,810 А потоа кога ќе ја посетите оваа страница, тоа само ќе се сруши, 215 00:11:00,810 --> 00:11:04,465 но на серверот не само да се сруши, тоа всушност ви дава супер корисни назад 216 00:11:04,465 --> 00:11:06,490 трага од сето она што не беше во ред. 217 00:11:06,490 --> 00:11:10,050 И, што е навистина убаво, се што во секој чекор во оваа назад во трагови, 218 00:11:10,050 --> 00:11:14,260 вие може да се отвори една интерактивна плаќа тука, и вид на печатење на она што 219 00:11:14,260 --> 00:11:17,780 променливи што сакате да ги погледне. 220 00:11:17,780 --> 00:11:21,054 >> И така дебагирање е навистина корисно за да пронајдат 221 00:11:21,054 --> 00:11:23,470 она што се случува со вашиот сервер, а не само да се види 222 00:11:23,470 --> 00:11:28,201 нешто во PHP како 500 внатрешно грешка на серверот, што е супер бескорисни. 223 00:11:28,201 --> 00:11:30,700 Една работа е да бидат свесни за, е дека ако се стави на вашиот стан онлајн 224 00:11:30,700 --> 00:11:34,260 така што е видливо за јавноста, ќе никогаш не сакаат да ја напуштат debug режим, 225 00:11:34,260 --> 00:11:37,320 затоа што луѓето навистина да ја користат таа конзола дека јас 226 00:11:37,320 --> 00:11:39,150 покажа да се изврши арбитрарен код. 227 00:11:39,150 --> 00:11:42,120 >> Така што тие може да испечатите како и секој тајни кодови имаш таму, 228 00:11:42,120 --> 00:11:44,755 тие може да се погледне што точно колку вашиот сајт е работа. 229 00:11:44,755 --> 00:11:46,630 Така што е навистина корисно за тестирање, но секогаш 230 00:11:46,630 --> 00:11:50,090 бидете сигурни да го извади пред да ја објавите нешто на интернет. 231 00:11:50,090 --> 00:11:56,640 >> Значи, кога сте со користење на нешто како PHP, има оваа идеја 232 00:11:56,640 --> 00:11:58,920 дека може да помине информации помеѓу веб-страници 233 00:11:58,920 --> 00:12:03,620 со ставање на информации, всушност, во URL-то, што е барање на ГЕТ, 234 00:12:03,620 --> 00:12:07,490 но во колба, всушност можете да направи нешто вид на како што, 235 00:12:07,490 --> 00:12:10,590 со тоа што на пат што има променлива како дел од неа. 236 00:12:10,590 --> 00:12:14,090 >> Значи, ако се погледне на овој пример на екранот тука, 237 00:12:14,090 --> 00:12:19,930 ние сме на пат што е ('/ Здраво /'), и така, ако го посетите 238 00:12:19,930 --> 00:12:23,790 / Здраво / нешто, дека нешто се случува да се, всушност, се полни 239 00:12:23,790 --> 00:12:25,490 во варијабилни името. 240 00:12:25,490 --> 00:12:27,850 И ќе забележите дека функцијата кој доаѓа со тој пат 241 00:12:27,850 --> 00:12:31,302 мора да ги има во параметар име, така што тоа ќе всушност 242 00:12:31,302 --> 00:12:32,510 да се донесе во функција. 243 00:12:32,510 --> 00:12:34,190 >> И тогаш, еднаш сте внатрешноста на таа функција, 244 00:12:34,190 --> 00:12:36,420 дека можете да се третираат како нормален Пајтон променлива, 245 00:12:36,420 --> 00:12:39,650 и така тогаш, тоа ќе печати Здраво, и тоа 246 00:12:39,650 --> 00:12:42,000 ќе се пополни во името користење некои форматирање стринг. 247 00:12:42,000 --> 00:12:48,060 >> Така да додадете променливите делови на рутирање, имате потреба при користење на држач агол означување. 248 00:12:48,060 --> 00:12:51,220 И евентуално, можете да го користите она што се нарекува конвертор. 249 00:12:51,220 --> 00:12:56,840 И така, ако го стави ова коментар со дебелото црево, 250 00:12:56,840 --> 00:13:00,015 можете да наведете дека тоа е int, или плови, или патека, 251 00:13:00,015 --> 00:13:01,640 и тоа автоматски ќе се претвори тоа. 252 00:13:01,640 --> 00:13:05,130 Можете исто така да се направи конверзија во рамките на Python функцијата, 253 00:13:05,130 --> 00:13:09,710 само со помош на кастингот, но понекогаш, ако сакате да се осигура дека тоа е цел број, 254 00:13:09,710 --> 00:13:12,080 може да се стави дека владеењето на конверзија во таму. 255 00:13:12,080 --> 00:13:15,930 >> Значи, да се повлече до еден пример на некои променлива правила. 256 00:13:15,930 --> 00:13:21,480 Па еве, овој има истите основни структура со колба од увоз 257 00:13:21,480 --> 00:13:25,030 Колба, стан = колба (_name_), а потоа тоа е водење на крајот. 258 00:13:25,030 --> 00:13:28,050 Ги имаме овие две различни променлива правци тука. 259 00:13:28,050 --> 00:13:29,900 И првиот, е онаа која јас ја покажа 260 00:13:29,900 --> 00:13:34,230 во слајд, што беше тоа потребно е само во името на серијата 261 00:13:34,230 --> 00:13:35,650 и тоа ќе се печати Здраво, Име. 262 00:13:35,650 --> 00:13:41,410 >> А потоа, второто некој го користи за конверзија. 263 00:13:41,410 --> 00:13:44,690 Па ова автоматски ќе го претворите да int, а потоа го удвои int, 264 00:13:44,690 --> 00:13:46,150 и печатење на тоа. 265 00:13:46,150 --> 00:13:48,220 А, ние не го сторат било вид на реализација во рамките на тоа 266 00:13:48,220 --> 00:13:49,594 Колба бидејќи се грижи за тоа. 267 00:13:49,594 --> 00:13:53,181 Значи, да се добие оваа трка. 268 00:13:53,181 --> 00:13:54,930 Кога имаш Колба примена трчање, 269 00:13:54,930 --> 00:13:58,440 Можете да го контролирате-С од неа да престане со серверот се извршува. 270 00:13:58,440 --> 00:14:02,420 А потоа ќе се кандидира на променливи. 271 00:14:02,420 --> 00:14:11,740 >> Па ајде да одиме да localhost / hello / Езра и се надевам дека ова ќе се поздрави со мене. 272 00:14:11,740 --> 00:14:14,530 273 00:14:14,530 --> 00:14:20,310 >> Па го зеде во Мое име, во променливата пат, и тоа го пополнува тука. 274 00:14:20,310 --> 00:14:23,950 Па јас, исто така, ќе ви покажеме еден брз пример за удвојување. 275 00:14:23,950 --> 00:14:28,600 Значи, ако одите во / двокреветни / 3, тоа ќе се печати од 6. 276 00:14:28,600 --> 00:14:31,440 Значи ова се грижеше за конверзијата за нас. 277 00:14:31,440 --> 00:14:34,190 >> Па можете да се, исто така, го направи тоа со плови, и нешто посебно, 278 00:14:34,190 --> 00:14:37,530 ако ви треба за да се определи нешто како патека, која ви овозможува да го прифати коси црти, 279 00:14:37,530 --> 00:14:39,155 но тоа не треба обично да биде проблем. 280 00:14:39,155 --> 00:14:41,480 281 00:14:41,480 --> 00:14:43,820 Досега сме, се уште имаат само се враќаат 282 00:14:43,820 --> 00:14:46,320 жици, што не е многу интересно. 283 00:14:46,320 --> 00:14:48,730 >> Ние всушност би можеле да се вратат буквална HTML стринг. 284 00:14:48,730 --> 00:14:54,322 Така што во кодот може да се внесете нешто како на б-таг да се направи тоа храбар, 285 00:14:54,322 --> 00:14:56,030 но повеќето од вас време всушност не сакаат 286 00:14:56,030 --> 00:14:58,420 да се пишува HTML кодот во вашиот Python код. 287 00:14:58,420 --> 00:15:01,940 Станува навистина неуредна, и тоа не е добро време. 288 00:15:01,940 --> 00:15:06,430 >> Колба ни овозможува да се издвојат HTML во она што се нарекува на дефиниција, 289 00:15:06,430 --> 00:15:09,467 и така, ако сте размислување во однос на моделот MVC 290 00:15:09,467 --> 00:15:11,550 дека сте запознаени со тоа, се надевам, да работат 291 00:15:11,550 --> 00:15:15,520 со CS50 финансии малку, може да се мисли на Python датотеки 292 00:15:15,520 --> 00:15:19,430 како повеќе на контролорот, каде тие се во интеракција со она 293 00:15:19,430 --> 00:15:20,970 модел на податоци може да имате. 294 00:15:20,970 --> 00:15:24,900 >> А потоа тие се јавувате до Видено и донесување на информации за таа Види 295 00:15:24,900 --> 00:15:28,120 за пополнување на информации во HTML која е потребна. 296 00:15:28,120 --> 00:15:30,490 И она што го нарекуваме овие ставови Шаблони се во класата. 297 00:15:30,490 --> 00:15:35,280 >> Па Колба туѓа Пајтон модул, кој тој автоматски ќе 298 00:15:35,280 --> 00:15:38,620 инсталира кога ќе го инсталирате Пип Колба наречен Jinja, која 299 00:15:38,620 --> 00:15:40,885 ви овозможува да додадете овие прибелешки на HTML 300 00:15:40,885 --> 00:15:45,140 кој го гледате на екранот, што ви овозможува се стави во работи како conditionals, 301 00:15:45,140 --> 00:15:47,230 и петелки во HTML. 302 00:15:47,230 --> 00:15:51,140 >> Па изгледа малку како тоа како ќе Може да го користите PHP во рамките на една HTML датотека, 303 00:15:51,140 --> 00:15:57,380 но тоа е само кога го шишето сервер служи до HTML датотека, 304 00:15:57,380 --> 00:16:01,610 тоа ќе го изврши овој templating мотор и интерпретира преку ова и да се пополни во работите. 305 00:16:01,610 --> 00:16:06,650 Колба така има функција render_template кои можете да ги видите на дното тука. 306 00:16:06,650 --> 00:16:14,300 И така, кога ќе ја посетите оваа страница, би го направила ова hello.html дефиниција, 307 00:16:14,300 --> 00:16:16,407 а потоа пополнете го овој HTML страница. 308 00:16:16,407 --> 00:16:18,990 Па да ја извршите оваа реално брзо, и да видат како изгледа, 309 00:16:18,990 --> 00:16:21,198 а потоа ќе поминат низ малку подетално. 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 Значи, вашата Шаблони се случува да се оди во папката обрасци. 312 00:16:30,260 --> 00:16:33,980 Тој автоматски ќе се погледне во рамките на Папката со шаблони за таа дефиниција. 313 00:16:33,980 --> 00:16:35,615 Значи, да се отвори овој горе. 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 Па така, ќе се кандидира на пример templating. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> Значи, ако јас одам да го / Здраво / Езра, таа има оваа ужасна, 318 00:17:03,660 --> 00:17:05,930 ништожно маркиза ознака што ја ставив во. 319 00:17:05,930 --> 00:17:08,050 Многу убаво, многу динамичен. 320 00:17:08,050 --> 00:17:09,349 Јас сум голем обожавател. 321 00:17:09,349 --> 00:17:13,900 Но, она што се случува ако Јас само да одат, / здраво? 322 00:17:13,900 --> 00:17:15,220 Па тоа само вели Здраво светот. 323 00:17:15,220 --> 00:17:17,678 И јас не ја помине име, и тоа го пополнува автоматски. 324 00:17:17,678 --> 00:17:22,050 Да видиме како тоа го сторија тоа, и како ние може да се ослободи од таа маркиза можеби. 325 00:17:22,050 --> 00:17:26,240 >> Па еве, ова е вид на Интересен пример за, 326 00:17:26,240 --> 00:17:29,101 ако сте запознаени со тоа како прекинувач извештаи работат во јазикот. 327 00:17:29,101 --> 00:17:31,350 Велат дека ова е вид на како, тој вид на пад низ, 328 00:17:31,350 --> 00:17:34,266 каде што, всушност, во прилог на две различни правци на истата функција. 329 00:17:34,266 --> 00:17:41,190 Па ние прикачите / Здраво пат и на / Здраво / име на пат кон Здраво, 330 00:17:41,190 --> 00:17:45,130 и ние наведете using-- Пајтон ви овозможува наведете стандардниот функција arguments-- 331 00:17:45,130 --> 00:17:48,300 па ако нема име, така што ако одиме на само / здраво, 332 00:17:48,300 --> 00:17:50,680 тој автоматски ќе се филтрираат за името, е еднаква на None. 333 00:17:50,680 --> 00:17:55,010 >> Па тогаш, што го направила Дефиниција со име = име, 334 00:17:55,010 --> 00:17:59,510 па тоа ќе помине во параметар име еднаков на оваа функција името параметар, 335 00:17:59,510 --> 00:18:00,730 во дефиниција. 336 00:18:00,730 --> 00:18:04,040 Кои се уште не објаснува како е одлучувањето дали да се печати Здраво Светот, 337 00:18:04,040 --> 00:18:05,100 или да ги печатите моето име. 338 00:18:05,100 --> 00:18:08,050 Па ајде да всушност изгледаат во самиот опис на предметот, 339 00:18:08,050 --> 00:18:11,610 и да видиме каде што доаѓа од. 340 00:18:11,610 --> 00:18:18,680 >> Па така, во рамките на оваа дефиниција, ние всушност имаат некои условен логика, 341 00:18:18,680 --> 00:18:20,580 кои некои луѓе би тврдат, вие всушност 342 00:18:20,580 --> 00:18:23,730 не треба да имаат многу условно логика во рамките на вашиот самиот опис. 343 00:18:23,730 --> 00:18:26,310 Таа треба да биде во рамките на Контролор, но за овој пример 344 00:18:26,310 --> 00:18:27,476 тоа е нешто прилично мал. 345 00:18:27,476 --> 00:18:31,060 Па еве, ние се провери, ако името, па ако името не е еднаква на None 346 00:18:31,060 --> 00:18:33,130 Ако името е, всушност, донесен во, тогаш ние ќе 347 00:18:33,130 --> 00:18:36,210 Велат здраво, име со насловот и маркиза, 348 00:18:36,210 --> 00:18:41,490 сето ова нормален HTML, спротивно, ние ќе печати Здраво, свет само нормално. 349 00:18:41,490 --> 00:18:45,820 Па неколку работи кои треба да се забележи тука за тоа како да го форматирате templating, 350 00:18:45,820 --> 00:18:49,110 е во тоа што, на сите овие условно извештаи, 351 00:18:49,110 --> 00:18:54,475 како вид на како го кога PHP сакате да го вметнете некои PHP, 352 00:18:54,475 --> 00:18:58,380 имате потреба при користење на помалку-од прашање марка, тоа е вид на аналогни тука 353 00:18:58,380 --> 00:19:00,140 со {%. 354 00:19:00,140 --> 00:19:02,130 >> Па еве, ние си имаме условно код. 355 00:19:02,130 --> 00:19:05,920 И тогаш, кога ќе се всушност сакаат да буквално оцени нешто, и печатење 356 00:19:05,920 --> 00:19:08,710 тоа до екранот, користат двојни брановидни загради. 357 00:19:08,710 --> 00:19:12,310 Значи тука се двојни брановидни загради, а потоа ние наведете го името, 358 00:19:12,310 --> 00:19:15,500 па во рамките на тоа, тоа ќе оцени на име на променлива, што 359 00:19:15,500 --> 00:19:18,860 беше донесен во од направат функција дефиниција, 360 00:19:18,860 --> 00:19:21,484 а не само за печатење надвор, ако ние се ослободи од нив, 361 00:19:21,484 --> 00:19:23,150 тоа само ќе се печати зборот "име." 362 00:19:23,150 --> 00:19:26,340 Значи, тоа е нешто да се види надвор за. 363 00:19:26,340 --> 00:19:29,792 >> Па уште нешто да се забележите е дека, кога ќе 364 00:19:29,792 --> 00:19:31,500 сакате да го користите render_template функција, 365 00:19:31,500 --> 00:19:34,490 ние всушност треба да внесуваат експлицитно од садот. 366 00:19:34,490 --> 00:19:36,915 И ова е пример за на модуларност на колба, 367 00:19:36,915 --> 00:19:39,290 тоа што вие не мора да увезуваат работи кои што не треба. 368 00:19:39,290 --> 00:19:41,290 Вие само може да се донесе во функции што всушност 369 00:19:41,290 --> 00:19:43,450 треба, што понекогаш е убаво, така да не се 370 00:19:43,450 --> 00:19:46,560 мора да ги имаат сите овие функции седат на таа не го користите, 371 00:19:46,560 --> 00:19:49,730 но, исто така, ако сте заборавиле да се треба да увезе render_template, 372 00:19:49,730 --> 00:19:52,660 најверојатно ќе добие предупредување која ќе може да знае за тоа. 373 00:19:52,660 --> 00:19:56,700 Значи, тоа е templating. 374 00:19:56,700 --> 00:20:01,680 >> Значи, ние сме прикажани како да се направи едноставна веб-страници, 375 00:20:01,680 --> 00:20:04,947 и додадете малку повеќе логика да тоа, во однос на променливата рутирање. 376 00:20:04,947 --> 00:20:08,280 Тоа ви овозможува да направите различни нешта врз основа на URL адресата што ќе одат на, и, исто така, тогаш, даде 377 00:20:08,280 --> 00:20:11,950 HTML со малку повеќе смисла во смисла на тоа како сакате да се направат нештата. 378 00:20:11,950 --> 00:20:14,210 Вие не мора да се стави сите Ваше HTML во вашиот Пајтон, 379 00:20:14,210 --> 00:20:16,640 но за доста секоја веб апликација, 380 00:20:16,640 --> 00:20:21,480 ви се случува да сакаат некој вид на модел на податоци поврзани со неа. 381 00:20:21,480 --> 00:20:25,560 >> И така традиционално, ова ќе да биде нешто како SQL база на податоци. 382 00:20:25,560 --> 00:20:30,280 И вие само може да комуницирате директно со SQL. 383 00:20:30,280 --> 00:20:32,190 Пајтон има, мислам дека се вика. 384 00:20:32,190 --> 00:20:33,040 SQLite 3. 385 00:20:33,040 --> 00:20:38,454 Вие само може да увезе SQLite 3 и изврши SQL queries директно, 386 00:20:38,454 --> 00:20:40,870 но јас не знам за вас, но јас навистина не ми се допаѓа, само, 387 00:20:40,870 --> 00:20:42,750 испишување на SQL queries. 388 00:20:42,750 --> 00:20:45,350 Тоа се стреми да се навистина долга и сложена. 389 00:20:45,350 --> 00:20:49,180 >> И така, нешто што Ми се допаѓа да се користи се што е 390 00:20:49,180 --> 00:20:53,610 познат како ORM, што е објектно-релациони мапирање. 391 00:20:53,610 --> 00:20:56,890 И местото на објектно-релациони мапирање, 392 00:20:56,890 --> 00:21:00,100 е дека постојат два различни начини може да се размислува за базите на податоци. 393 00:21:00,100 --> 00:21:03,240 >> Па на пример, дека Професор Malan обично 394 00:21:03,240 --> 00:21:07,660 користи во класа, е Excel табела, каде што имате овие редови и колони, 395 00:21:07,660 --> 00:21:10,210 и тоа е навистина корисни за како што е претставен во SQL 396 00:21:10,210 --> 00:21:13,170 и како можете да комуницирате со неа, но Друг начин на кој тоа е всушност 397 00:21:13,170 --> 00:21:16,390 корисно е да се размислува за тоа, понекогаш, е во однос на класи и објекти. 398 00:21:16,390 --> 00:21:20,420 >> Така, наместо на размислување на секоја маса како што имаат 399 00:21:20,420 --> 00:21:23,040 овој ред дека има одредени информации, всушност можете да 400 00:21:23,040 --> 00:21:26,100 мислам на тоа како да се биде секоја маса е класа, 401 00:21:26,100 --> 00:21:29,810 а потоа секоја инстанца на класа има одредени својства. 402 00:21:29,810 --> 00:21:35,110 Значи, со овој пример, случаи на класата се редови во табелата, 403 00:21:35,110 --> 00:21:37,490 а потоа секој имот би да биде колона во табелата. 404 00:21:37,490 --> 00:21:40,840 >> Значи, ОРМ што ми се допаѓа да се користи се нарекува peewee. 405 00:21:40,840 --> 00:21:43,520 Тоа е навистина мал, како вид на колба. 406 00:21:43,520 --> 00:21:46,760 Јас мислам дека тие одат добро заедно, но постојат многу други ORMS 407 00:21:46,760 --> 00:21:47,730 дека можете да го користите. 408 00:21:47,730 --> 00:21:52,180 А се повеќе популарна од нив е познат како SQLAlchemy, 409 00:21:52,180 --> 00:21:56,050 и не можам да се сетам зошто јас првично избра peewee над SQLAlchemy, 410 00:21:56,050 --> 00:21:58,311 или јас ќе ви кажам зошто јас мислам дека е најдобар, 411 00:21:58,311 --> 00:22:01,060 но ние сме само ќе да се користи оваа еден, бидејќи знам како да го користам. 412 00:22:01,060 --> 00:22:04,760 >> Значи, прашањето е, зошто треба да се мачам со користење на ОРМ, 413 00:22:04,760 --> 00:22:07,552 наместо само директно пишување SQL queries? 414 00:22:07,552 --> 00:22:09,760 И мислам дека најдобар случај, е во тоа што не, всушност 415 00:22:09,760 --> 00:22:11,356 мора да се напише SQL queries. 416 00:22:11,356 --> 00:22:14,480 Тоа е многу полесно, како што јас ќе ви покажам, да ги правите нештата како избор, вметнување, 417 00:22:14,480 --> 00:22:16,157 бришење, посебно возобновувањето и табели. 418 00:22:16,157 --> 00:22:17,990 Тоа е многу полесно да се напишете класната структура, 419 00:22:17,990 --> 00:22:22,250 отколку што е да структурираат Креирајте ТАБЕЛА изјава, но едно нешто 420 00:22:22,250 --> 00:22:25,710 да бидат свесни за, е тоа што на ОРМ ќе се обидат најдобро 421 00:22:25,710 --> 00:22:28,640 за да дознаам што најмногу ефикасна SQL барање ќе биде, 422 00:22:28,640 --> 00:22:30,110 но понекогаш тоа добива тоа во ред. 423 00:22:30,110 --> 00:22:32,660 >> И особено ако сте работа со голема база на податоци, 424 00:22:32,660 --> 00:22:35,557 може да се забележи дека на барањето кои треба да се работи брзо, 425 00:22:35,557 --> 00:22:36,640 си го зема подолго. 426 00:22:36,640 --> 00:22:40,164 И ако се погледне под хаубата на тоа како на ОРМ го толкува дека во SQL, 427 00:22:40,164 --> 00:22:42,080 тоа би можело да се прави нешто навистина смешно, 428 00:22:42,080 --> 00:22:44,371 само поради тоа што вид на гест вашите намери ред. 429 00:22:44,371 --> 00:22:48,080 И, имало моменти кога Морав да се вратиш назад, и само 430 00:22:48,080 --> 00:22:52,429 изврши моето SQL queries, само поради тоа што беше парсирање на некој чуден начин. 431 00:22:52,429 --> 00:22:54,220 Така, има некои горе, само во начинот на 432 00:22:54,220 --> 00:22:58,680 дека тоа составува вашиот извештаи долу во SQL. 433 00:22:58,680 --> 00:23:06,200 >> Значи, ајде да изгледаат супер брзо на едноставен пример на модел на податоци 434 00:23:06,200 --> 00:23:07,350 кој ќе го користите. 435 00:23:07,350 --> 00:23:11,880 Значи, ова е Python код, така и на Првото нешто што сакате да направите е од 436 00:23:11,880 --> 00:23:12,950 peewee увоз *. 437 00:23:12,950 --> 00:23:15,850 Значи, за разлика колба, каде што треба сите овие поединечни модули, 438 00:23:15,850 --> 00:23:18,125 и сакате да го внесете колба, и напише дефиниција, и некои други 439 00:23:18,125 --> 00:23:20,690 кои што ќе видиме подоцна, од peewee, можете само да внесуваат сè, 440 00:23:20,690 --> 00:23:22,290 бидејќи тоа е прилично мала библиотека. 441 00:23:22,290 --> 00:23:26,490 >> Значи, првото нешто што сакате да направите, е всушност се создаде оваа база на податоци објект. 442 00:23:26,490 --> 00:23:31,212 Значи, вие треба db = SqliteDatabase, а потоа името на вашата база на податоци. 443 00:23:31,212 --> 00:23:33,170 И ова ќе всушност се создаде база на податоци објект 444 00:23:33,170 --> 00:23:36,230 дека можете да комуницирате со, со peewee. 445 00:23:36,230 --> 00:23:40,570 >> И тогаш, имаме вистинските модел што ние сакаме да се создаде. 446 00:23:40,570 --> 00:23:42,470 Па на табелата ние сакаме да се создаде. 447 00:23:42,470 --> 00:23:47,270 Така, во рамките на peewee, секоја класа има своја маса во рамките на својата база на податоци. 448 00:23:47,270 --> 00:23:52,800 Значи, сите од класите наследат од основниот модел, 449 00:23:52,800 --> 00:23:55,960 и модел на капитал М е нешто што е дефинирано во peewee. 450 00:23:55,960 --> 00:24:02,162 >> Значи, сите од вашиот модели треба наследуваат како највисоки суперкласа, 451 00:24:02,162 --> 00:24:04,620 тие треба да го наследат од модел, но она што е навистина кул, 452 00:24:04,620 --> 00:24:07,610 е дека всушност можете да имате модели наследат едни од други. 453 00:24:07,610 --> 00:24:10,530 И многу од тоа време, вашиот податоци модели не мора 454 00:24:10,530 --> 00:24:13,754 направи убав хиерархија наследство, но времиња, во кои тие го прават, тоа е навистина убаво, 455 00:24:13,754 --> 00:24:15,920 затоа што имаат модел својствени едни од други. 456 00:24:15,920 --> 00:24:19,710 >> Значи, ние се дефинира оваа категорија "студент", кој ја наследува модел, 457 00:24:19,710 --> 00:24:21,170 и тоа има три својства. 458 00:24:21,170 --> 00:24:24,080 Таа има проект, што е a PrimaryKeyField, која 459 00:24:24,080 --> 00:24:26,920 е нешто што е предвидено страна peewee, името е CharField, 460 00:24:26,920 --> 00:24:28,490 и оценка е IntegerField. 461 00:24:28,490 --> 00:24:32,260 Така што ова може или не може да биде како CS50 всушност зачувува сите 462 00:24:32,260 --> 00:24:33,650 оценки на учениците. 463 00:24:33,650 --> 00:24:36,060 Дека не е, но тоа е како јас ќе го направи тоа. 464 00:24:36,060 --> 00:24:37,920 >> А потоа го има, во рок од оваа класа, и тоа 465 00:24:37,920 --> 00:24:41,620 е нешто што можете да направите со Пајтон, може да имате вгнездени класи. 466 00:24:41,620 --> 00:24:43,920 И ова е нешто она што е потребно од страна на peewee. 467 00:24:43,920 --> 00:24:47,250 Значи, оваа класа Мета, имаш да се каже дека базата на податоци е 468 00:24:47,250 --> 00:24:49,830 еднаква на објект дека ние направивме погоре. 469 00:24:49,830 --> 00:24:54,339 И ова вели дека она што на датотеката е оваа табела всушност ќе бидат содржани во. 470 00:24:54,339 --> 00:24:57,130 Така што ова е нешто што имаш да се направи во рамките на сите модели. 471 00:24:57,130 --> 00:24:59,380 Вие само треба да се определи во рамките на оваа класа Мета 472 00:24:59,380 --> 00:25:01,400 база на податоци која е еднаква на dB. 473 00:25:01,400 --> 00:25:03,940 Значи она што обично го прават, ако имам еден куп на различни модели, 474 00:25:03,940 --> 00:25:05,910 е дека имам една база модел, што јас обично 475 00:25:05,910 --> 00:25:08,839 само јавете "основниот модел" кој има Мета класа, 476 00:25:08,839 --> 00:25:10,380 и поставува на база на податоци еднаква на dB. 477 00:25:10,380 --> 00:25:13,710 И тогаш сите од мојот следните модели нема да го наследат од таа база класа. 478 00:25:13,710 --> 00:25:16,760 И јас тогаш не мора да се грижите за поставување на Мета класа. 479 00:25:16,760 --> 00:25:21,490 >> Значи, кога ова всушност добива Составувач е долу во SQL изјава, 480 00:25:21,490 --> 00:25:24,875 тоа изгледа како овој гаден нешто надолу тука "Креирај табела студентски проект број, 481 00:25:24,875 --> 00:25:26,020 " како и да е. 482 00:25:26,020 --> 00:25:30,002 >> И, мислам дека тоа е покус, ова SQL пребарување токму тука, 483 00:25:30,002 --> 00:25:32,960 но ако се погледне во оваа класа тука може да се види точно она што се случува. 484 00:25:32,960 --> 00:25:36,116 Може да се види она што видови на полиња постојат, она што тие се нарекуваат, 485 00:25:36,116 --> 00:25:38,115 и така, мислам дека во потрага на овој Python код 486 00:25:38,115 --> 00:25:43,340 е многу повеќе може да се чита од обидувајќи се да ја напишам оваа SQL пребарување. 487 00:25:43,340 --> 00:25:45,990 >> Значи, со цел да се, всушност, користи базата на податоци, 488 00:25:45,990 --> 00:25:48,470 ние треба да се поврзе со него во рок Пајтон. 489 00:25:48,470 --> 00:25:52,770 Значи, јас обично ги пишувам функција наречена initialize_db дека се две нешта. 490 00:25:52,770 --> 00:25:54,880 Таа ги зема во базата на податоци објект ДБ и тоа 491 00:25:54,880 --> 00:25:58,360 се поврзе на неа, која само што се отвора до делот на базата на податоци. 492 00:25:58,360 --> 00:26:00,860 Ако сте само трчање иако веб-сајтот на вашата локална машина, 493 00:26:00,860 --> 00:26:04,320 тоа не е супер голема работа да се грижите за приклучување и исклучување, 494 00:26:04,320 --> 00:26:06,885 но ако се работи тоа на веб-сајт, можете 495 00:26:06,885 --> 00:26:10,010 сакате да бидете сигурни дека, секогаш кога некој корисник се поврзе на неа, кога ќе се затвори 496 00:26:10,010 --> 00:26:12,270 на веб страната, тие се исклучите, така што ќе не имаат еден куп на луѓе поврзани 497 00:26:12,270 --> 00:26:14,480 до вашата база на податоци на сите одеднаш. 498 00:26:14,480 --> 00:26:16,370 >> И тогаш, кога ќе се поврзете на базата на податоци, 499 00:26:16,370 --> 00:26:20,832 сакате да се јавите db.create_tables, како и листа на модели за она што го сакате 500 00:26:20,832 --> 00:26:21,540 да се создаде табели. 501 00:26:21,540 --> 00:26:23,950 Па еве, јас само сакам да креирај за оваа ученик. 502 00:26:23,950 --> 00:26:28,070 И тогаш, она што е важно, е да се наведете безбедно = Точно повеќето од времето. 503 00:26:28,070 --> 00:26:30,380 Па што оваа изјава ќе го направи, е тоа што 504 00:26:30,380 --> 00:26:33,580 создава маси за студент модел, но само 505 00:26:33,580 --> 00:26:36,109 ако тоа не е на маса е веќе креиран. 506 00:26:36,109 --> 00:26:37,400 Тоа е она што на безбедно одредува. 507 00:26:37,400 --> 00:26:39,150 Така што не ќе ги избрише постојните вашата маса, 508 00:26:39,150 --> 00:26:41,525 тоа само ќе се создаде нова маса ако нема никој таму. 509 00:26:41,525 --> 00:26:45,090 Значи, вие само може да се создаде табелите еднаш со користење на SQL. 510 00:26:45,090 --> 00:26:49,410 А потоа го имаат тоа седница база таму, а потоа да се поврзете секој пат, 511 00:26:49,410 --> 00:26:52,450 но тоа е обично убаво само да стави во ова create_tables повик, 512 00:26:52,450 --> 00:26:55,550 така што, ако некогаш ја избришете вашата база на податоци кога ќе се кандидира на вашиот веб 513 00:26:55,550 --> 00:26:57,960 повторно стан, тоа ќе го пресоздаде. 514 00:26:57,960 --> 00:27:00,730 >> Значи, само бидете сигурни дека безбедно е одреден да биде вистина, 515 00:27:00,730 --> 00:27:03,580 или ќе го најдете вашиот податоци на ист начин добивање clobbered секое време. 516 00:27:03,580 --> 00:27:06,380 И тогаш, вие само може да се јавите initialize_db да се воспостави 517 00:27:06,380 --> 00:27:09,820 конекција, и да се создаде маси, ако е потребно. 518 00:27:09,820 --> 00:27:13,150 >> Значи, најчестиот нешто кои ќе сакате да го направите, 519 00:27:13,150 --> 00:27:15,920 или еден од најчестите работи, е всушност да внесете работи 520 00:27:15,920 --> 00:27:17,170 во вашата база на податоци. 521 00:27:17,170 --> 00:27:19,430 И така, наместо да има да напишам вметнете во 522 00:27:19,430 --> 00:27:21,990 изјава со сите наведени вредностите, 523 00:27:21,990 --> 00:27:24,650 што всушност може да се јавите функција на класа на студентите. 524 00:27:24,650 --> 00:27:28,200 Значи, кога ќе се создаде една класа која ја наследува од моделот, 525 00:27:28,200 --> 00:27:30,200 има овој создаде метод. 526 00:27:30,200 --> 00:27:33,870 >> Значи, вие го направите класа name.create, и ќе го одредите параметрите 527 00:27:33,870 --> 00:27:35,260 што сакате да го помине во. 528 00:27:35,260 --> 00:27:39,200 Значи, ако сакам да го додадете некои студенти за нашите CS50 градус книга пример, 529 00:27:39,200 --> 00:27:41,820 Ќе се стави во Давид, кој има многу добра оценка, тој има 95. 530 00:27:41,820 --> 00:27:45,100 И мене, кои не го прави толку добро во CS50, имам 50. 531 00:27:45,100 --> 00:27:47,600 И така, убаво нешто за што е ова создаде функција го прави, 532 00:27:47,600 --> 00:27:53,040 е тоа што таа се враќа на пример, или ред, дека се создадени во рамките на табелата, 533 00:27:53,040 --> 00:27:55,750 И така, тогаш ќе ги чувате дека во променлива, и да работат со него подоцна. 534 00:27:55,750 --> 00:27:58,830 Можете да го промените наоколу, кој Ќе покажам еден пример. 535 00:27:58,830 --> 00:28:03,050 >> Известување дека не сум Треба да ја наведете проект, 536 00:28:03,050 --> 00:28:09,340 бидејќи од тоа е PrimaryKeyField, тој автоматски ќе 537 00:28:09,340 --> 00:28:10,930 тоа прираст, ако не го наведете. 538 00:28:10,930 --> 00:28:12,250 И дека, всушност, веројатно не треба да се определи тоа 539 00:28:12,250 --> 00:28:14,810 бидејќи може случајно clobber проект некој друг. 540 00:28:14,810 --> 00:28:16,830 И дека сакате да се направи сигурни дека тоа е единствен. 541 00:28:16,830 --> 00:28:20,662 >> Така, всушност, најмногу заедничко нешто што сакате да направите, 542 00:28:20,662 --> 00:28:22,620 најверојатно изберете од на базата на податоци, штом еднаш ќе 543 00:28:22,620 --> 00:28:24,078 имате голем број на информации во таму. 544 00:28:24,078 --> 00:28:27,360 И така, ако сакате да се добие сè, па еквивалент на одберете ѕвезда 545 00:28:27,360 --> 00:28:30,940 од студентите изјава, тоа само ќе биде student.select. 546 00:28:30,940 --> 00:28:34,380 И дека ќе ти го врати низа со сите на ученикот објекти во него 547 00:28:34,380 --> 00:28:35,770 кои ви iterate во текот сакате. 548 00:28:35,770 --> 00:28:37,019 Може да се добијат работите надвор од неа. 549 00:28:37,019 --> 00:28:39,310 И поголемиот дел од времето, ќе не само сакате да го изберете, 550 00:28:39,310 --> 00:28:40,935 вие всушност сакате да наведете нешто. 551 00:28:40,935 --> 00:28:44,580 И така, може да се синџирот на заедно овие функциски повици, 552 00:28:44,580 --> 00:28:48,830 како тоа, како што би направиле со синџирот на заедно изјавите во SQL. 553 00:28:48,830 --> 00:28:53,002 Па можете да направите student.select (). Каде во овој пример. 554 00:28:53,002 --> 00:28:54,710 И тогаш, можете да ги утврдува условите, 555 00:28:54,710 --> 00:28:57,880 само со користење на нормални Пајтон Booleans да се провери работи. 556 00:28:57,880 --> 00:29:02,110 >> Значи, во овој случај, ќе сакате да го ограничи она што го изборот на, 557 00:29:02,110 --> 00:29:06,790 каде што student.grade е еднаква на 50, и student.name е еднаква на Езра, 558 00:29:06,790 --> 00:29:09,130 така што само ќе ми излезат од него. 559 00:29:09,130 --> 00:29:11,340 И известување, една навистина суптилна работа тука е 560 00:29:11,340 --> 00:29:15,570 дека, ако сакате да одредите една и и / или една или / или, 561 00:29:15,570 --> 00:29:19,840 во Python, што нормално ќе се користи, Мислам дека зборот "и", всушност, 562 00:29:19,840 --> 00:29:23,351 но тука ќе се користи единствениот симболот, што е нормално bitwise оператори, 563 00:29:23,351 --> 00:29:25,600 но во овој посебен случај, peewee само начинот на кој го прави тоа, 564 00:29:25,600 --> 00:29:27,660 имате потреба при користење на единствена симболот за да одредите "и". 565 00:29:27,660 --> 00:29:29,451 Тоа е нешто што Јас се измешаат многу, 566 00:29:29,451 --> 00:29:32,530 но тоа не се излезе дека многу во практика. 567 00:29:32,530 --> 00:29:36,350 >> А потоа, откако ќе ги имаат сите на учениците од базата на податоци, 568 00:29:36,350 --> 00:29:39,420 еднаш сте го направиле си одберете и вашата облека или што, 569 00:29:39,420 --> 00:29:42,334 можете да го користите foreach циклусот, исто како нормална во Python, 570 00:29:42,334 --> 00:29:44,500 со било кој вид на iterator или со било кој вид на низа. 571 00:29:44,500 --> 00:29:46,333 За да може да се направи, затоа што сака во student.select (). whe 572 00:29:46,333 --> 00:29:52,930 повторно (Student.grade <75), и така и ова ќе помине iterate во текот на секој ученик во табелата 573 00:29:52,930 --> 00:29:56,260 чија оценка е помала од 75, кои во овој случај, се уште е само мене. 574 00:29:56,260 --> 00:29:59,218 И тогаш би можеле да се направи нешто во рамките на дека јамка, како мене, испратете е-маил 575 00:29:59,218 --> 00:30:01,680 и мене да кажам, всушност, предадам проблем сетови. 576 00:30:01,680 --> 00:30:04,550 >> Значи, уште една работа што можете да направите, е тоа е навистина лесно 577 00:30:04,550 --> 00:30:06,460 да го обновите редови во табелата. 578 00:30:06,460 --> 00:30:08,720 Значи, се сеќавам назад тука, Вашиот кога се вметнат, 579 00:30:08,720 --> 00:30:11,440 Зедов вредноста што беше вратени од student.create, 580 00:30:11,440 --> 00:30:14,920 и јас го доделен на име се нарекува Езра. 581 00:30:14,920 --> 00:30:18,995 И така сега, можете да го промените вредности во тој случај, 582 00:30:18,995 --> 00:30:20,870 исто како што би нормална класа во Python. 583 00:30:20,870 --> 00:30:25,060 >> За да можете да го поставите ezra.grade = 95 и дека ќе се ажурира на локалната копија, 584 00:30:25,060 --> 00:30:28,380 но ако навистина сакате да го обврзат дека промена на базата на податоци, 585 00:30:28,380 --> 00:30:31,410 мора да се повик ezra.save, па да се нарече .save метод 586 00:30:31,410 --> 00:30:32,650 на пример. 587 00:30:32,650 --> 00:30:38,085 >> И така, сега, јас Успешно ја променивте моето одделение во рамките на базата на податоци. 588 00:30:38,085 --> 00:30:41,210 Е така, тогаш ајде да речеме дека јас се фатат менување на мојот одделение во рамките на базата на податоци. 589 00:30:41,210 --> 00:30:44,126 Професор Malan е веројатно нема да сака да ме избришеш од класата, 590 00:30:44,126 --> 00:30:48,630 и за да можете да се јавите на .delete метод на пример само за онаа работа. 591 00:30:48,630 --> 00:30:51,674 >> Значи, ако се сака да оди назад во овој циклус тука, 592 00:30:51,674 --> 00:30:53,465 и всушност, наместо на испраќање на пораки на сите 593 00:30:53,465 --> 00:30:56,577 на студенти, чија оценка е помалку од 75, што сакавте да ги избришете, 594 00:30:56,577 --> 00:30:58,660 во рамките на овој циклус би можеле јавете s.delete пример. 595 00:30:58,660 --> 00:31:04,180 596 00:31:04,180 --> 00:31:07,780 И последната работа што сакате да направите, е секогаш кога ќе се воспостави врска, 597 00:31:07,780 --> 00:31:10,350 и ќе се направи со вашата работа, сакате да се јавите db.close, 598 00:31:10,350 --> 00:31:13,190 каде дб е дека базата на податоци предмет што го имавме пред. 599 00:31:13,190 --> 00:31:18,290 А вие сакате да бидете сигурни дека се добива затворен од. 600 00:31:18,290 --> 00:31:18,790 >> Кул. 601 00:31:18,790 --> 00:31:22,410 Па сега, јас имам еден пример апликација. 602 00:31:22,410 --> 00:31:26,880 Јас сум вид на претходно поставените сè само така што нема да има било која живеат кодирање 603 00:31:26,880 --> 00:31:30,220 грешки, но можеме да одиме преку тоа и да видиме како ќе се стави колба 604 00:31:30,220 --> 00:31:33,685 и peewee заедно, и да се направи едноставна апликација. 605 00:31:33,685 --> 00:31:38,680 Јас го нарекувам CS50 проповед, и тоа е вид на едноставен блог платформа. 606 00:31:38,680 --> 00:31:41,150 >> Значи, прво, јас ќе се кандидира и покажуваат како изгледа, 607 00:31:41,150 --> 00:31:42,890 и тогаш може да се погледне повеќе во кодот. 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 Океј, па ајде да ја извршите оваа. 610 00:32:02,830 --> 00:32:14,040 611 00:32:14,040 --> 00:32:17,250 Кул, јас ќе се направи ова малку помали. 612 00:32:17,250 --> 00:32:20,000 Тоа не е многу убава, само поради тоа што Јас не се направи многу, CSS, 613 00:32:20,000 --> 00:32:23,255 но она што го прави тоа е, има оваа база на податоци на блог постови, 614 00:32:23,255 --> 00:32:25,630 и тоа оди преку сите нив, и ќе ги прикаже 615 00:32:25,630 --> 00:32:28,170 на оваа страница, со цел од најновите. 616 00:32:28,170 --> 00:32:30,920 И така ова се само некои постови дека сум му заштедил во базата на податоци. 617 00:32:30,920 --> 00:32:35,680 >> Значи, ако сакаме да се создаде нова пост, ние може да оди за да додадете нов пост, 618 00:32:35,680 --> 00:32:42,720 а ние може да внесете го насловот на пост, па нешто како, CS50 семинарот. 619 00:32:42,720 --> 00:32:45,360 620 00:32:45,360 --> 00:32:46,735 Леле, навистина ужива на семинарот. 621 00:32:46,735 --> 00:32:51,070 622 00:32:51,070 --> 00:32:52,270 >> Кул. 623 00:32:52,270 --> 00:32:56,060 Тогаш ќе притиснете на пост, а тоа ќе ви се пренасочува назад кон почетната страница, 624 00:32:56,060 --> 00:33:00,039 и тогаш ќе видите дека е додаден го последното мислење. 625 00:33:00,039 --> 00:33:01,580 И ние се уште имаат сите оние таму. 626 00:33:01,580 --> 00:33:08,080 А сега, ајде да влезете низ сите код и да видиме како тоа се спроведува. 627 00:33:08,080 --> 00:33:11,995 >> Значи, мислам дека првото нешто што ајде погледнете, е, всушност, модели. 628 00:33:11,995 --> 00:33:14,120 А многу од тоа време, кога сте дизајнирање нешто, 629 00:33:14,120 --> 00:33:17,036 сакате да се размислува за тоа како прв си оди за да ги претставуваат вашите податоци, 630 00:33:17,036 --> 00:33:22,915 а потоа дизајн работите околу тоа, така што сè има смисла. 631 00:33:22,915 --> 00:33:25,290 А тоа е, всушност, како јас тоа го правеше кога јас го правев тоа, 632 00:33:25,290 --> 00:33:28,030 Седнав и помислив, што сакам во еден пост. 633 00:33:28,030 --> 00:33:32,130 >> Значи, тука, ние имаме иста структура дека сум бил споменат погоре, 634 00:33:32,130 --> 00:33:33,755 каде што го правиме db = Sqldatabase ('posts.db'). 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 Во реалноста, што веројатно не сакаат до тешко код во вашата база на податоци име. 637 00:33:40,980 --> 00:33:43,730 Што веројатно треба да биде параметар тоа е се чуваат некаде, можеби 638 00:33:43,730 --> 00:33:45,940 во датотеката за конфигурација, но во еден мал пример како оваа, 639 00:33:45,940 --> 00:33:48,310 тоа е во ред да се тешко код дека во. 640 00:33:48,310 --> 00:33:53,510 >> Па сега, имаме оваа класа пост, која наследува од основниот модел. 641 00:33:53,510 --> 00:33:56,930 И тоа има, повторно, ID = PrimaryKeyField. 642 00:33:56,930 --> 00:34:02,250 Всушност, ако не се определи, ако јас всушност се ослободи од ова, 643 00:34:02,250 --> 00:34:07,152 peewee тогаш ние ќе се грижи за автоматски се создава поле проект, 644 00:34:07,152 --> 00:34:09,360 и тоа автоматски ќе го направи PrimaryKey, која 645 00:34:09,360 --> 00:34:12,485 Мислам дека е навистина убаво, бидејќи обично, тоа е нешто што сакате да го имаат, 646 00:34:12,485 --> 00:34:16,239 но јас сакам да го стави во конкретно, само така се сеќавам дека тоа е таму. 647 00:34:16,239 --> 00:34:19,480 Но, ако не се каже дека, дека ќе има автоматски. 648 00:34:19,480 --> 00:34:22,198 >> Па тогаш, имам еден датум кој е DateTimeField, и сите 649 00:34:22,198 --> 00:34:24,864 овие различни области, ако се погледне на peewee документација, 650 00:34:24,864 --> 00:34:28,920 тоа ќе ви даде листа на различните видови на области, кои можете да го користите. 651 00:34:28,920 --> 00:34:34,440 За најголем дел, тоа е аналогно на она што ќе се види во SQL. 652 00:34:34,440 --> 00:34:37,699 Значи постои CharField, односно VarCharFields, TextFields, 653 00:34:37,699 --> 00:34:40,550 кои се многу долго текстови, како блог пост 654 00:34:40,550 --> 00:34:44,460 потенцијално, DateTimeFields, DoubleFields, FloatFields, 655 00:34:44,460 --> 00:34:46,100 сите такви работи. 656 00:34:46,100 --> 00:34:51,570 >> И можете да го помине на други аргументи на тоа, што јас не прецизираше тука. 657 00:34:51,570 --> 00:34:55,719 Да речеме, на пример, вие не сакате да го им овозможи на двете места да имаат ист наслов, 658 00:34:55,719 --> 00:34:59,672 можете да наведете нешто како единствена = Вистина, 659 00:34:59,672 --> 00:35:02,880 и тоа е само дополнителен параметар за да се на полето дека кога тоа го компајлира надолу 660 00:35:02,880 --> 00:35:06,865 во SQL, таа ќе се определи дека тоа треба да биде уникатен. 661 00:35:06,865 --> 00:35:09,740 Можете да наведете нешто како не нула и сите други работи 662 00:35:09,740 --> 00:35:11,750 што нормално се направи во SQL. 663 00:35:11,750 --> 00:35:16,020 Значи, ова е прилично едноставна модел кој има датумот. 664 00:35:16,020 --> 00:35:19,460 Забележуваме дека тука, во рамките на DateTimeField, Јас наведени она што е стандардна. 665 00:35:19,460 --> 00:35:22,560 Ми се наведени да биде datetime.datetime.now, 666 00:35:22,560 --> 00:35:24,920 поради начинот на кој ова добива оценува, 667 00:35:24,920 --> 00:35:28,750 тоа всушност ја оценува на datetime.now кога 668 00:35:28,750 --> 00:35:32,110 станува вметнува во базата на податоци. 669 00:35:32,110 --> 00:35:34,760 >> Мислам дека, јас ќе треба да се убаво провери ова, 670 00:35:34,760 --> 00:35:38,222 но ако се направи нешто како ова, тогаш тоа, всушност, ќе се оцени дека еднаш, 671 00:35:38,222 --> 00:35:40,180 а потоа и на DateTime секогаш ќе бидат исти. 672 00:35:40,180 --> 00:35:44,240 Значи, само ако правиш нешто со datetimes, проверете 673 00:35:44,240 --> 00:35:47,080 дека тоа е кога оценување всушност добива вметнат, или на друго место 674 00:35:47,080 --> 00:35:48,780 кои би можеле да се мешаат. 675 00:35:48,780 --> 00:35:51,221 >> Насловот е само CharField, која има 676 00:35:51,221 --> 00:35:53,970 повеќе аргументи може да се помине специфицирањето точно колку долго ќе 677 00:35:53,970 --> 00:35:56,170 сакате да биде, но тука, тоа не е важно. 678 00:35:56,170 --> 00:35:58,687 Текст и ќе биде текстот на целиот пост, 679 00:35:58,687 --> 00:36:01,020 и што се случува да се биде TextField само затоа што сакате 680 00:36:01,020 --> 00:36:03,370 за да му се овозможи да биде прилично долга низа. 681 00:36:03,370 --> 00:36:05,970 >> Тогаш имаме овој Мета подкласа дека само 682 00:36:05,970 --> 00:36:11,250 наведува дека ние сакаме на базата на податоци каде што ова е, всушност, се отворија во 683 00:36:11,250 --> 00:36:14,267 дека е dB на објектот што го имаме овде. 684 00:36:14,267 --> 00:36:16,350 И последното нешто што имаме тука, токму таа функција 685 00:36:16,350 --> 00:36:18,120 дека ние ќе треба да користат од нашите главни стан 686 00:36:18,120 --> 00:36:23,970 да се иницијализира на база на податоци за да се поврзете неа, а потоа да се креира табела Пост. 687 00:36:23,970 --> 00:36:26,880 >> Сега, ајде да погледнеме во себе главната апликација. 688 00:36:26,880 --> 00:36:30,800 Така што ова е доста малку подолго од оние 689 00:36:30,800 --> 00:36:34,840 дека ние сме виделе досега, но се надевам дека не е премногу лошо. 690 00:36:34,840 --> 00:36:37,140 Па, дозволете ми да се прошири оваа надвор. 691 00:36:37,140 --> 00:36:38,370 Добро. 692 00:36:38,370 --> 00:36:42,070 >> Значи, да се забележи и на врвот Јас увезени еден куп други работи 693 00:36:42,070 --> 00:36:44,129 од Колба дека не сме навистина видел. 694 00:36:44,129 --> 00:36:46,670 И се надевам дека можеме да одиме преку секој еден од овие, еден по еден 695 00:36:46,670 --> 00:36:49,420 и да се зборува малку повеќе за нив, подредени по пример. 696 00:36:49,420 --> 00:36:51,380 Значи, имаме колба, и render_template, 697 00:36:51,380 --> 00:36:54,370 кој што сум го видел досега, ова барање објектот, 698 00:36:54,370 --> 00:37:00,400 кој ќе дојде до кога гледаме како форма дека сум бил да ги покажувате, всушност, 699 00:37:00,400 --> 00:37:01,170 работи. 700 00:37:01,170 --> 00:37:04,850 Пренасочи, кој ви овозможува да ги пренасочи назад од Креирај Нов Пост 701 00:37:04,850 --> 00:37:11,710 назад кон оригиналната страница, а потоа URL-то, што е нешто што ви овозможува 702 00:37:11,710 --> 00:37:15,550 дознаам каде на веб-страница на одредена страница е. 703 00:37:15,550 --> 00:37:17,810 >> Па тогаш, следниот нешто што го правам е јас увоз 704 00:37:17,810 --> 00:37:21,550 сите информации од моделите датотеки што бевме само гледа. 705 00:37:21,550 --> 00:37:23,140 И да, да. 706 00:37:23,140 --> 00:37:28,720 >> Значи, уште нешто ново што доаѓа до кога ќе се занимаваат со, 707 00:37:28,720 --> 00:37:31,850 особено бази на податоци, е во тоа што можете да го одредите 708 00:37:31,850 --> 00:37:35,110 функција што се нарекува пред Секое барање, и функцијата што добива 709 00:37:35,110 --> 00:37:39,690 наречен по секое барање, со користење на овој барање функција декоратер app.before. 710 00:37:39,690 --> 00:37:42,324 >> И така ова ќе се извршуваат каде и оваа функција е. 711 00:37:42,324 --> 00:37:44,240 Ова не мора да биде нарекува пред барањето, 712 00:37:44,240 --> 00:37:46,281 но обично тоа е нешто разумно да го наречеме. 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 Можете да наведете било функција сакаш да се вика таму, 715 00:37:51,650 --> 00:37:56,330 па јас наведени ова initialize_db функција што ја имавме уште во Модели 716 00:37:56,330 --> 00:38:02,390 датотека, па пред секое барање, сакате да се поврзете на базата на податоци. 717 00:38:02,390 --> 00:38:04,560 >> Постојат два различни начини можете да го направите тоа. 718 00:38:04,560 --> 00:38:10,830 Можете да го направитеapp., Јас Верувам дека тоа е after_request. 719 00:38:10,830 --> 00:38:13,800 И разликата помеѓу after_request и teardown_request, 720 00:38:13,800 --> 00:38:17,590 after_request е тоа што само ќе се случи ако барањето всушност е валиден. 721 00:38:17,590 --> 00:38:20,440 И така, само ако барање беше успешна, 722 00:38:20,440 --> 00:38:22,490 ако ништо не беше во ред, но teardown_request 723 00:38:22,490 --> 00:38:26,300 се случува во случај на успешна барање, или, во случај на грешка. 724 00:38:26,300 --> 00:38:28,252 >> Така, обично, сакаш да се користи teardown_request, 725 00:38:28,252 --> 00:38:30,460 освен ако не сакате да се направи нешто, особено различни 726 00:38:30,460 --> 00:38:31,470 во случај на грешка. 727 00:38:31,470 --> 00:38:35,122 Но, само за затворање на базата на податоци, без разлика дали тоа ќе успее или ако тоа не успее, 728 00:38:35,122 --> 00:38:37,080 правиме сакате да се исклучите од базата на податоци. 729 00:38:37,080 --> 00:38:41,240 Така што се вика, db.close на ДБ објект. 730 00:38:41,240 --> 00:38:43,740 >> Забележите дека teardown_request зема во исклучок. 731 00:38:43,740 --> 00:38:46,781 За да може да се провери дали има е всушност грешка при дека се затвора, 732 00:38:46,781 --> 00:38:49,390 но тука, се надевам, таму не се целина многу грешки, 733 00:38:49,390 --> 00:38:52,720 па ние сме само вид на неа тоа. 734 00:38:52,720 --> 00:38:55,990 >> Океј, и остатокот од тоа не е толку лош. 735 00:38:55,990 --> 00:39:02,240 Значи, кога ќе одат на почетната страница, ние изречена оваа home.html Шаблон 736 00:39:02,240 --> 00:39:03,490 што ќе се отвори. 737 00:39:03,490 --> 00:39:06,240 Поминете е во пост еднаков на, и она што оваа 738 00:39:06,240 --> 00:39:10,260 не е, се сеќавам имаме овој пост моделот, па ги селектираме сите постови, 739 00:39:10,260 --> 00:39:13,890 а потоа и уште една работа што можете да направите, можете да наведете КАДЕ клаузула, 740 00:39:13,890 --> 00:39:16,910 можете да наведете еден да нареди од страна, и така ние се 741 00:39:16,910 --> 00:39:18,820 сите постови кои се избрани, а потоа 742 00:39:18,820 --> 00:39:22,590 ние ги ред од страна на post.date.descending. 743 00:39:22,590 --> 00:39:25,030 И дека ќе се определи, кога тие, всушност, излезе, 744 00:39:25,030 --> 00:39:29,250 најновиот ќе биде многу првиот. 745 00:39:29,250 --> 00:39:31,420 >> И тогаш, ние го положат дека во дефиниција home.html, 746 00:39:31,420 --> 00:39:34,240 па ајде да всушност се отвори Шаблон дека навистина брзо, 747 00:39:34,240 --> 00:39:36,760 и да ги разгледаме во тоа како што е работа. 748 00:39:36,760 --> 00:39:42,130 И ова не е голема HTML, но Се надеваме дека можеме да се фокусираме на Пајтон. 749 00:39:42,130 --> 00:39:46,960 >> Па таму е линк до Внеси нов Мислење, па така ова го одредува правецот 750 00:39:46,960 --> 00:39:51,580 во рамките на Колба дека ние се дефинира, кој е во право тука. 751 00:39:51,580 --> 00:39:56,310 Ова е новиот пост пат, а ние се каже дека до тука. 752 00:39:56,310 --> 00:40:00,450 И така тоа е врска, тогаш тоа ќе се оди до тој пат во рамките на серверот колба. 753 00:40:00,450 --> 00:40:03,820 >> Повеќе интересни нешто е ова за јамка тука. 754 00:40:03,820 --> 00:40:07,685 За да можеме да се каже дека овој место параметар кој 755 00:40:07,685 --> 00:40:09,560 беше донесен во render_template функција, 756 00:40:09,560 --> 00:40:13,550 за секој пост во пост е објект што ќе поминуваат во. 757 00:40:13,550 --> 00:40:16,600 Ние сакаме да се печати назив, во Н1, 758 00:40:16,600 --> 00:40:21,930 а потоа и подолу, ние сакаме да се печати цитирате во параграф. 759 00:40:21,930 --> 00:40:25,710 >> И тука, ние всушност може да јавите на функција Пајтон, 760 00:40:25,710 --> 00:40:35,130 така што можеме да го наречеме strftime, СТ-RF-време, и може да се помине во формат стринг 761 00:40:35,130 --> 00:40:37,064 што сакате да печатите на податоци во. 762 00:40:37,064 --> 00:40:39,980 Па тоа е многу убаво што ќе може да всушност се јавите на оваа функција Пајтон 763 00:40:39,980 --> 00:40:41,090 од рамките тука. 764 00:40:41,090 --> 00:40:44,370 Вие не треба да се направи за форматирање на страна на контролорот, бидејќи навистина, 765 00:40:44,370 --> 00:40:47,770 форматирање на датумот е нешто што сакате да се справи во рамките на приказ. 766 00:40:47,770 --> 00:40:51,480 >> И сите овие проценти работите не е супер важно. 767 00:40:51,480 --> 00:40:55,270 Ако погледнеш документација за функцијата strftime во Python, 768 00:40:55,270 --> 00:40:57,040 го одредува сите овие работи, но тоа е 769 00:40:57,040 --> 00:40:59,190 како, кога бевме во потрага на почетната страница тука, 770 00:40:59,190 --> 00:41:04,440 тоа формати ова со убав датумот, и тоа специфицира AM или PM, 771 00:41:04,440 --> 00:41:09,410 но нормално, ако се немале овој овде, 772 00:41:09,410 --> 00:41:14,024 најверојатно ќе добие некои ѓубре датум кој не изгледа многу добро. 773 00:41:14,024 --> 00:41:15,940 А потоа ние наведете post.text, и можев да 774 00:41:15,940 --> 00:41:19,460 да се стави неколку линија паузи тука, само 775 00:41:19,460 --> 00:41:21,820 да се стави некои простори помеѓу секој пост. 776 00:41:21,820 --> 00:41:26,270 >> Значи, мислам дека најважна работа во овој пример, 777 00:41:26,270 --> 00:41:28,697 е дека можете да го користите овој за телефонска линија. 778 00:41:28,697 --> 00:41:30,780 И ова е аналогно работи што можете да направите во PHP. 779 00:41:30,780 --> 00:41:32,905 Можете да iterate преку, се што ќе поминуваат во, 780 00:41:32,905 --> 00:41:36,719 И така, наместо да се направи copy / paste, copy / paste сите HTML, 781 00:41:36,719 --> 00:41:40,010 вие само треба да го пишувам еднаш, а потоа можете да iterate во текот на сите на мислења. 782 00:41:40,010 --> 00:41:41,510 >> И ова е нешто вообичаени што сакате 783 00:41:41,510 --> 00:41:44,510 да се направи, кога ќе имаат голем број на податоци, е дека за се што е во вашите податоци, 784 00:41:44,510 --> 00:41:48,370 што сакате да направите нешто слично. 785 00:41:48,370 --> 00:41:51,690 И тогаш, само се сеќавам, дека кога ќе сакате да испечатите нешто експлицитно 786 00:41:51,690 --> 00:41:54,780 во HTML, можете да користите во двојни брановидни загради тука, 787 00:41:54,780 --> 00:41:57,820 но потоа, кога сакате да одредите некои информации за состојбата, 788 00:41:57,820 --> 00:42:02,430 или врска за телефонска линија, можете користете проценти заграда. 789 00:42:02,430 --> 00:42:08,730 >> Значи, да се вратам на Пајтон код, така што објаснува 790 00:42:08,730 --> 00:42:12,242 она што се случува во главниот пат, кога ќе одам таму, 791 00:42:12,242 --> 00:42:14,450 тоа само ги прикажува сите мислења, но потоа на прашањето 792 00:42:14,450 --> 00:42:17,440 е, како ние всушност се постови во базата на податоци, која 793 00:42:17,440 --> 00:42:18,970 е малку поинтересна. 794 00:42:18,970 --> 00:42:23,960 >> Значи, кога ќе кликнете на нова Пост линк, како што видовме тука, 795 00:42:23,960 --> 00:42:26,000 тоа води до оваа форма. 796 00:42:26,000 --> 00:42:29,580 И тоа е само еден едноставен повик до render_template функција, која потоа 797 00:42:29,580 --> 00:42:32,110 минува во новата функција во HTML форма. 798 00:42:32,110 --> 00:42:36,212 Па ајде да ги разгледаме во тоа. 799 00:42:36,212 --> 00:42:37,420 Така што ова е прилично едноставна. 800 00:42:37,420 --> 00:42:45,110 Таа има едноставна HTML форма, што ќе изгледа малку познати, 801 00:42:45,110 --> 00:42:47,380 врз основа на форми во CS50 финансии. 802 00:42:47,380 --> 00:42:49,940 И така, ние наведете тука, акцијата. 803 00:42:49,940 --> 00:42:52,435 И тука, ако си работат со PHP, нормално, 804 00:42:52,435 --> 00:42:55,930 ќе биде нешто како, create.PHP, но тука 805 00:42:55,930 --> 00:42:59,960 ние всушност го одредите рутата во рамките на серверот колба. 806 00:42:59,960 --> 00:43:02,520 И така, овој пат одговара на пат да се создаде 807 00:43:02,520 --> 00:43:05,680 ние сме тука, што ќе одиме во секунда. 808 00:43:05,680 --> 00:43:07,630 >> И така, ние се каже дека Тоа е метод пост, 809 00:43:07,630 --> 00:43:09,820 бидејќи ние сакаме да се испрати оваа форма на податоци, како и обично 810 00:43:09,820 --> 00:43:12,945 кога праќаш податоци од формулар, можеби ќе сакате да го користите барање мислење, 811 00:43:12,945 --> 00:43:15,760 само да не завршуваат со овој голем, гломазен URL-то. 812 00:43:15,760 --> 00:43:18,970 Но вие исто така може да го користат на оваа барање за ГЕТ, и да го во со променлива рутирање, 813 00:43:18,970 --> 00:43:21,170 туку и за форми, тоа е убаво на барање пост тука. 814 00:43:21,170 --> 00:43:24,620 И така, тогаш, само да ви се допаѓа би го направил со HTML и PHP, 815 00:43:24,620 --> 00:43:28,420 можете да наведете овие текстуални влезови, и можете да го зададете името на нив, 816 00:43:28,420 --> 00:43:33,490 а тоа е името што ќе се донесе во барањето објект во колба. 817 00:43:33,490 --> 00:43:36,960 >> И тогаш имаме Достават копчето што вели Пост. 818 00:43:36,960 --> 00:43:40,760 И тука, пост е името на копче, бидејќи тоа е еден блог пост, 819 00:43:40,760 --> 00:43:42,700 Но, еве, пост е метод на барањето. 820 00:43:42,700 --> 00:43:47,060 Значи тоа се ист збор но, всушност, не се поврзани. 821 00:43:47,060 --> 00:43:48,460 Је 822 00:43:48,460 --> 00:43:54,800 >> Да се ​​вратам на кодот на Пајтон, кога ќе се нарекува метод на креирање, 823 00:43:54,800 --> 00:43:57,702 известување тука дека можете да всушност се определи во рамките на пат 824 00:43:57,702 --> 00:44:00,650 методи на барање што сакате да го прифати, 825 00:44:00,650 --> 00:44:04,770 и така тука, јас се каже дека јас само сакаат да го прифати методот пост. 826 00:44:04,770 --> 00:44:09,800 Значи, ако јас всушност се обидуваат да ја посетите страницата директно, кој е со користење на барање ГЕТ, 827 00:44:09,800 --> 00:44:11,700 тоа ќе ми каже "Начин не е дозволено." 828 00:44:11,700 --> 00:44:15,840 >> И така, ќе мора страници, како вид на ова се создаде страница, која јас сум само 829 00:44:15,840 --> 00:44:20,192 навистина се користи како начин за форма да поднесат, 830 00:44:20,192 --> 00:44:22,900 можете да наведете дека ти не сакате луѓето да бидат во можност да одам таму 831 00:44:22,900 --> 00:44:25,650 директно преку барање на ГЕТ, или ако не сакаат, 832 00:44:25,650 --> 00:44:28,580 поради некоја причина, барањето Пост, можете само да го одредите добие тука, 833 00:44:28,580 --> 00:44:32,720 но, во овој пример, ние само сакате барањето објавите да се излезе. 834 00:44:32,720 --> 00:44:38,700 >> Значи, кога create_post се вика, кога ги посетуваме дека преку барање Пост, 835 00:44:38,700 --> 00:44:43,600 секогаш кога ќе отидете на одредена пат, таму е овој објект барање, 836 00:44:43,600 --> 00:44:46,640 и моравме да увезува барања во самиот врв, 837 00:44:46,640 --> 00:44:49,640 но има ова барање објект што ќе поминуваат во, 838 00:44:49,640 --> 00:44:53,210 и можете да пристапите до податоците на формата, со што автоматски ќе се полни 839 00:44:53,210 --> 00:44:55,070 кога ќе се испрати барање од некоја форма. 840 00:44:55,070 --> 00:44:56,990 >> И тогаш, што мислам е навистина кул, се 841 00:44:56,990 --> 00:45:02,840 таа форма објект да се донесе во, е само речникот Пајтон дека 842 00:45:02,840 --> 00:45:10,560 содржи, ако access-- па еве, нека ме повлече нагоре на HTML веднаш до неа, само 843 00:45:10,560 --> 00:45:17,670 за да можете да го имаат тоа како референца, да, така 844 00:45:17,670 --> 00:45:21,060 имињата кои ги наведете тука за различни области, па 845 00:45:21,060 --> 00:45:23,900 насловот и текстот, а потоа само ги користат овие овде 846 00:45:23,900 --> 00:45:27,110 како индекси во податоци на формуларот. 847 00:45:27,110 --> 00:45:28,950 Па тоа е супер лесен. 848 00:45:28,950 --> 00:45:33,320 >> Па тогаш ние го нарекуваме post.create, која ќе се создаде и автоматски вметнете 849 00:45:33,320 --> 00:45:36,850 овој нов пост објект во базата на податоци. 850 00:45:36,850 --> 00:45:40,690 И мислам дека ова се создаде функцијата тука е многу добар пример за тоа како 851 00:45:40,690 --> 00:45:44,900 Колба е моќен и работа со ова, затоа што ако ви се прави нешто 852 00:45:44,900 --> 00:45:48,660 во PHP, можеби ќе треба да направи многу на нострификација, 853 00:45:48,660 --> 00:45:51,730 вие ќе треба да потоа се воспостави база на податоци врска, 854 00:45:51,730 --> 00:45:55,210 вие ќе треба да потоа изврши пребарување SQL, 855 00:45:55,210 --> 00:45:59,550 но тука ние само треба овој убав post.create, кои можеме да потоа само 856 00:45:59,550 --> 00:46:01,520 се добие информации од на барањето објект, 857 00:46:01,520 --> 00:46:05,370 а потоа ќе поминат во нова објавите дека ние сме создавање. 858 00:46:05,370 --> 00:46:07,850 >> И тогаш, на самиот крај, нешто што сакате да направите, 859 00:46:07,850 --> 00:46:09,630 е да се пренасочи на корисникот назад до дома. 860 00:46:09,630 --> 00:46:13,020 И така ние ги користиме оваа Колба пренасочи функција. 861 00:46:13,020 --> 00:46:17,770 И нешто што го немавме пред тоа, беше овој URL функција. 862 00:46:17,770 --> 00:46:21,970 Па URL за функција овозможува ќе помине во всушност името 863 00:46:21,970 --> 00:46:26,090 на функцијата во вашиот Python код, а не на одреден пат 864 00:46:26,090 --> 00:46:26,720 што тоа е во. 865 00:46:26,720 --> 00:46:32,107 >> Па јас би можеле да имаат само така лесно пренасочени на корисникот да се намали, 866 00:46:32,107 --> 00:46:37,050 кој ќе го испрати дома, но користење на URL за функција е убаво, 867 00:46:37,050 --> 00:46:39,990 бидејќи ако се промени Локацијата на која работите, 868 00:46:39,990 --> 00:46:44,080 па да речеме дека го сменам дома за да биде во / home, наместо тоа, 869 00:46:44,080 --> 00:46:47,040 ова, сепак, ќе потоа да се вратите / домот, затоа што, всушност, оди и гледа нагоре 870 00:46:47,040 --> 00:46:50,770 името на функцијата, и тоа ќе ви дадам се врати на URL-то за тоа. 871 00:46:50,770 --> 00:46:52,490 >> Значи, вид на на претпоставка дека сте 872 00:46:52,490 --> 00:46:55,489 со поголема веројатност да се промени, каде што работи се, од имињата на функции. 873 00:46:55,489 --> 00:46:58,840 Можете да го користите ова навистина убаво URL за функцијата. 874 00:46:58,840 --> 00:47:02,470 И една работа да бидат свесни за тоа е малку незгодно, 875 00:47:02,470 --> 00:47:05,750 е тоа што мислите дека може само да јавете се пренасочи на URL-то, 876 00:47:05,750 --> 00:47:10,600 но всушност сите правци имаат да се врати некој вид на текст и HTML, 877 00:47:10,600 --> 00:47:14,360 така што всушност треба да се врати на пренасочување на повик. 878 00:47:14,360 --> 00:47:18,379 Во спротивно, ќе добиете нешто невалидно врска не враќање на стринг, 879 00:47:18,379 --> 00:47:21,420 бидејќи сите овие мора да се врати HTML со што всушност сакаат да ја даде. 880 00:47:21,420 --> 00:47:26,980 >> И така, кога ќе се јавите на пренасочување, тоа води до страната, 881 00:47:26,980 --> 00:47:30,270 но тоа всушност се враќа на HTML што треба да се изврши што пренасочување. 882 00:47:30,270 --> 00:47:34,430 883 00:47:34,430 --> 00:47:37,110 Вратете се во почетната страница. 884 00:47:37,110 --> 00:47:39,200 Па ние имаме овие две различни гледишта. 885 00:47:39,200 --> 00:47:40,132 Имаме поглед дома. 886 00:47:40,132 --> 00:47:41,590 Или, претпоставувам дека треба да се каже шаблони. 887 00:47:41,590 --> 00:47:44,190 Ги имаме овие две шаблони, дефиниција дом кој 888 00:47:44,190 --> 00:47:48,500 ги прикажува сите од нашите мислења, и тогаш имаме оваа реклама работа, 889 00:47:48,500 --> 00:47:52,970 и кога ќе кликнете на пост, тоа оди за нов пат во рамките на колба, 890 00:47:52,970 --> 00:47:55,920 но тој пат не мора имаат соодветен шаблон. 891 00:47:55,920 --> 00:47:59,290 892 00:47:59,290 --> 00:48:01,560 Вие не мора да се види ништо, но може да се уште 893 00:48:01,560 --> 00:48:04,090 имаат оваа работа се случува зад сцената. 894 00:48:04,090 --> 00:48:07,450 А потоа ќе се пренасочени назад кон почетната страница. 895 00:48:07,450 --> 00:48:12,230 И, дефинитивно, тоа е лесно да се работи во некои поубави CSS во дефиниција 896 00:48:12,230 --> 00:48:15,580 и да се направи ова изгледа многу поубаво, но сите од главните логиката 897 00:48:15,580 --> 00:48:18,590 е таму во Пајтон. 898 00:48:18,590 --> 00:48:20,020 >> Било какви прашања во врска со тоа на пример? 899 00:48:20,020 --> 00:48:22,760 Знам дека има многу различни работи се случува таму, 900 00:48:22,760 --> 00:48:25,341 многу работи што не го видел пред тоа, но како ништо. 901 00:48:25,341 --> 00:48:25,840 Је. 902 00:48:25,840 --> 00:48:28,346 >> ПУБЛИКАТА 1: Дали треба да правите ништо посебно да мелез на податоци што е 903 00:48:28,346 --> 00:48:29,600 чувар од форма? 904 00:48:29,600 --> 00:48:31,109 Јас забележав само рече "создаде" 905 00:48:31,109 --> 00:48:33,900 EZRA ZIGMOND: Да, така што е всушност, тоа е навистина добра поента. 906 00:48:33,900 --> 00:48:36,350 Значи, прашањето е, дали Треба да проверите и да бидете сигурни 907 00:48:36,350 --> 00:48:39,190 дека податоците е валиден, и направи било кој вид на триење 908 00:48:39,190 --> 00:48:41,840 за да бидете сигурни дека тоа е валиден, бидејќи, како што можете да видите тука, 909 00:48:41,840 --> 00:48:42,660 Јас не го правам тоа. 910 00:48:42,660 --> 00:48:48,140 Да видиме што ќе се случи ако јас ја објавите нешто празно. 911 00:48:48,140 --> 00:48:51,190 Значи, тоа ќе се всушност само се направи празно место и да се пополни во DateTime. 912 00:48:51,190 --> 00:48:55,990 >> Така, во реалноста, најверојатно ќе Сакате да направите нешто слично, 913 00:48:55,990 --> 00:49:04,749 можеби одредите насловот е еднаква на на празна низа, тогаш немојте да го направите тоа. 914 00:49:04,749 --> 00:49:07,290 Или, пак, само го направи тоа ако насловот е не еднаква на празен стринг. 915 00:49:07,290 --> 00:49:10,330 Па тоа не се, всушност, автоматски се грижи за тоа триење 916 00:49:10,330 --> 00:49:12,820 за вас, така што ќе треба да го направите тоа. 917 00:49:12,820 --> 00:49:14,330 Да, добро прашање. 918 00:49:14,330 --> 00:49:18,497 >> ПУБЛИКАТА 2: Дали тоа мелез за продолжението инјекција? 919 00:49:18,497 --> 00:49:19,890 Дали знаеш? 920 00:49:19,890 --> 00:49:22,830 >> EZRA ZIGMOND: Се надевам дека, peewee прави тоа. 921 00:49:22,830 --> 00:49:25,830 Мислам дека тоа сигурно ќе биде многу лоши библиотека ако тоа не го стори тоа. 922 00:49:25,830 --> 00:49:29,511 923 00:49:29,511 --> 00:49:32,690 Не знам точно. 924 00:49:32,690 --> 00:49:34,820 Јас ќе треба да се погледне на пребарувањето што ја создава. 925 00:49:34,820 --> 00:49:38,980 Мислам дека, ако јас ја внеле во блог пост дека вид на погледна 926 00:49:38,980 --> 00:49:46,370 како SQL инјекција напад, нешто како ова, ако овој 927 00:49:46,370 --> 00:49:49,370 е како поле лозинка или нешто, може да се направи нешто како ова. 928 00:49:49,370 --> 00:49:53,410 >> Мислам дека ќе се уште буквално се испратени, 929 00:49:53,410 --> 00:49:59,200 но мислам дека peewee прави некој вид на чистењето на податоците 930 00:49:59,200 --> 00:50:01,680 пред тоа всушност го извршува. 931 00:50:01,680 --> 00:50:04,510 >> ПУБЛИКАТА 1: Тоа е поле за текст цел да се преземат со обичен текст, нели? 932 00:50:04,510 --> 00:50:05,710 >> EZRA ZIGMOND: Да, тоа е. 933 00:50:05,710 --> 00:50:06,465 Је. 934 00:50:06,465 --> 00:50:09,590 Па јас мислам дека сите, па ова е коректното однесување, која ќе го направи тоа, 935 00:50:09,590 --> 00:50:12,170 но мислам дека peewee се надевам дека го стори 936 00:50:12,170 --> 00:50:13,780 некој вид на заштита на својот крај. 937 00:50:13,780 --> 00:50:16,090 И ако си сакал да двојно проверете дали има 938 00:50:16,090 --> 00:50:19,530 начини кога генерирате пребарување. 939 00:50:19,530 --> 00:50:22,622 така да не мора да го го изврши директно. 940 00:50:22,622 --> 00:50:24,330 Би мора да се земе погледнете во документацијата, 941 00:50:24,330 --> 00:50:27,930 но вие всушност може да го погледнете SQL дека тоа е генерирање, 942 00:50:27,930 --> 00:50:30,840 и да ги разгледаме во тоа, и да се направи сигурни дека тоа е бегство работи. 943 00:50:30,840 --> 00:50:33,700 >> Уште една причина зошто можеби сакате да се погледне на SQL 944 00:50:33,700 --> 00:50:37,920 дека peewee е Ставање, е ако работите се чини дека се случува навистина бавно, 945 00:50:37,920 --> 00:50:41,090 можете да ги разгледаме и да видиме што тоа е всушност, го прават, затоа што тоа е понекогаш 946 00:50:41,090 --> 00:50:44,670 лесно да се случајно додадете во, начинот на кој што пишува, 947 00:50:44,670 --> 00:50:47,880 случајно сте може да го имаат изберете целата база на податоци, прво, 948 00:50:47,880 --> 00:50:50,230 а потоа направи некој вид операција на тоа, кога навистина 949 00:50:50,230 --> 00:50:51,320 со цел да го изберете една подгрупа. 950 00:50:51,320 --> 00:50:53,560 >> И така, ако работите не се сосема оди право, 951 00:50:53,560 --> 00:50:57,300 добро е да фрлите поглед на барање Тоа е всушност да се создава. 952 00:50:57,300 --> 00:50:57,800 Је. 953 00:50:57,800 --> 00:51:02,100 >> ПУБЛИКАТА 2: Кога за прв пат започна, се стави во пристаништето како 5000. 954 00:51:02,100 --> 00:51:02,904 >> EZRA ZIGMOND: Да. 955 00:51:02,904 --> 00:51:06,070 ПУБЛИКАТА 2: е стандардно со peewee, или тоа е нешто што може да се промени? 956 00:51:06,070 --> 00:51:10,870 EZRA ZIGMOND: Да, така што порта е стандардно со колба. 957 00:51:10,870 --> 00:51:13,061 Ако го работи без специфицирање ништо, 958 00:51:13,061 --> 00:51:14,310 тој автоматски ќе го правам тоа. 959 00:51:14,310 --> 00:51:16,060 Верувам, јас ќе треба да се убаво провери ова, 960 00:51:16,060 --> 00:51:19,130 но може да се каже дека во app.run, Мислам дека може да се направи такво нешто, 961 00:51:19,130 --> 00:51:19,629 порт = 8080. 962 00:51:19,629 --> 00:51:22,375 963 00:51:22,375 --> 00:51:23,750 Ајде да им даде дека обиде вистински брз. 964 00:51:23,750 --> 00:51:29,100 965 00:51:29,100 --> 00:51:32,230 Да, така што само може да се определи порт = 8080, а тоа ќе го работи таму, 966 00:51:32,230 --> 00:51:36,130 што мислам дека, ако си сакал да го работи на ИРО, Јас не се обиделе ова, 967 00:51:36,130 --> 00:51:38,527 но мислам дека ако тоа трчаше на порта 8080, 968 00:51:38,527 --> 00:51:40,360 најверојатно ќе биде во можност за пристап на серверот, 969 00:51:40,360 --> 00:51:41,870 исто како што беа за страната. 970 00:51:41,870 --> 00:51:44,390 >> Да, но тоа е лесно да го промени тоа ако 971 00:51:44,390 --> 00:51:48,540 било кој вид на како порта-шпедиција работи кои што треба да се направи. 972 00:51:48,540 --> 00:51:50,410 >> Било какви други прашања? 973 00:51:50,410 --> 00:51:50,916 Да? 974 00:51:50,916 --> 00:51:53,416 ПУБЛИКАТА 1: Па, го видов во твојот модели, кои, како што рековме, 975 00:51:53,416 --> 00:51:55,647 ќе мора да се определи база на податоци за секој објект. 976 00:51:55,647 --> 00:51:58,105 Дали ви се случи да се знае, дали кои го прават тоа навистина лесно, ако 977 00:51:58,105 --> 00:52:03,210 имаат многу SQLite бази кои ви сакате да го користите за една единствена web апликација, 978 00:52:03,210 --> 00:52:07,210 дека само може да се определи еден куп различни дискурси во вашиот модел? 979 00:52:07,210 --> 00:52:11,620 >> EZRA ZIGMOND: Да, нека ме отворете дека до вистински брз. 980 00:52:11,620 --> 00:52:17,570 Значи, ти си велејќи дека, ако сакате да имате еден куп на различни нешто, можеби 981 00:52:17,570 --> 00:52:22,670 се допаѓа и на студентите, за некои причина, нешто слично? 982 00:52:22,670 --> 00:52:26,870 Да, така што мислам дека сепак, секој модел 983 00:52:26,870 --> 00:52:30,652 ќе треба да се уште имаат само една база на податоци што му се доделени, 984 00:52:30,652 --> 00:52:32,610 но ако сака да има различни модели кои 985 00:52:32,610 --> 00:52:35,818 се доделени на различни бази на податоци објекти на него, вие дефинитивно може да го направите тоа. 986 00:52:35,818 --> 00:52:43,070 Значи, ако јас се создаде нова, нешто како ова, 987 00:52:43,070 --> 00:52:47,000 а сега ова е студент кој изгледа чудно е како блог пост, 988 00:52:47,000 --> 00:52:49,390 Можев да се каже дека база на податоци е еднаква на db_2 тука. 989 00:52:49,390 --> 00:52:51,390 Значи, мислам дека тоа е Главниот начин можете да го направите тоа. 990 00:52:51,390 --> 00:52:54,560 991 00:52:54,560 --> 00:52:56,200 >> Кул. 992 00:52:56,200 --> 00:52:58,410 Било какви други прашања? 993 00:52:58,410 --> 00:53:02,170 >> Па само да завршам малку малку, тука се и некои ресурси, 994 00:53:02,170 --> 00:53:06,030 и овие слајдови ќе бидат објавени на интернет така што всушност може да се добие на овие линкови. 995 00:53:06,030 --> 00:53:08,500 Најдобрите ресурси се навистина документацијата за Колба 996 00:53:08,500 --> 00:53:09,930 и самите peewee. 997 00:53:09,930 --> 00:53:12,940 Тие се напишани навистина добро, си мислам. 998 00:53:12,940 --> 00:53:18,180 Значи, на веб-сајтот Колба е тука, и тие имаат quickstart туториал кој 999 00:53:18,180 --> 00:53:20,710 ќе прошетка низ слични работите со она што одеше преку, 1000 00:53:20,710 --> 00:53:23,560 но ако сакате било кој вид на преглед од работите што отидов, 1001 00:53:23,560 --> 00:53:26,200 или мислеше дека јас го појаснив нешто во збунувачки начин, 1002 00:53:26,200 --> 00:53:28,390 тие ќе имаат слични примери таму. 1003 00:53:28,390 --> 00:53:31,570 >> Peewee има документација, како и тие имаат quickstart туториал 1004 00:53:31,570 --> 00:53:34,650 што оди во текот на главните параметри , кои ќе сакаат да ги користат. 1005 00:53:34,650 --> 00:53:38,900 Значи, она што јас разговаравме за со единствен, и специфицирање стандардно, 1006 00:53:38,900 --> 00:53:42,710 различните видови на области, кои се можете да го користите, сите тие ќе бидат таму. 1007 00:53:42,710 --> 00:53:44,690 >> Исто така, ако имате прашања во врска со peewee, 1008 00:53:44,690 --> 00:53:47,530 и да ги објавите на stackoverflow, човек кој направил peewee всушност 1009 00:53:47,530 --> 00:53:49,500 продолжува и одговори оние понекогаш. 1010 00:53:49,500 --> 00:53:53,200 Ако имате некое прашање, се надевам тој ќе биде во можност да одговори на сето тоа, 1011 00:53:53,200 --> 00:53:54,867 затоа што тој го напишал на целата работа. 1012 00:53:54,867 --> 00:53:56,700 Мислам дека тоа е сè што Сакав да се покријат. 1013 00:53:56,700 --> 00:53:58,930 Ви благодариме за кои доаѓаат надвор. 1014 00:53:58,930 --> 00:54:02,688