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 Эзра Зігмунд: Прывітанне, усім. 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 Так, па-першае, проста адзін слайд што будзе хуткі старт, 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 IDE. 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 Настой робіць працу з Python 3, але мне падабаецца 35 00:01:35,860 --> 00:01:38,660 Выкарыстанне Python 2, таму што ёсць некаторыя пакеты Python, што 36 00:01:38,660 --> 00:01:40,910 не працуюць з 3 яшчэ. 37 00:01:40,910 --> 00:01:44,800 Калі вы Піп усталяваны, што гэта менеджэр Python пакет, 38 00:01:44,800 --> 00:01:48,190 Я думаю, што калі ваш Пітон больш або роўна 2.7.9, 39 00:01:48,190 --> 00:01:52,220 ён у вас ужо ўсталяваны, гэта супер лёгка ўсталяваць гэтыя пакеты. 40 00:01:52,220 --> 00:01:54,990 >> Вы можаце зрабіць пункт ўсталяваць Настой, пункт ўсталяваць Peewee, 41 00:01:54,990 --> 00:01:58,600 як правіла, вы павінны запусціць Sudo толькі так што дазволу працаваць. 42 00:01:58,600 --> 00:02:01,080 І, калі вы карыстаецеся супер старая версія Python, 43 00:02:01,080 --> 00:02:05,100 Я рэкамендую абнаўленні Python, або з дапамогай 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 >> Так, настой з'яўляецца асновай для што робіць вэб-прыкладанняў з выкарыстаннем Python. 58 00:02:46,081 --> 00:02:48,330 І, спадзяюся, да канца гэта, я буду пераконваць вас 59 00:02:48,330 --> 00:02:52,210 што вы сапраўды можа нешта напісаць як CS50 фінансаў, выкарыстоўваючы Python, які я 60 00:02:52,210 --> 00:02:53,950 як шмат лепш, чым PHP, асабіста. 61 00:02:53,950 --> 00:02:57,320 >> Так, настой, яны называюць микрокаркас, з дапамогай якога, 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 Але толькі таму, што гэта микрокаркас, ня 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 Я павінен параўнаць яго з Рубі на Рэйкі і Django, абодва з якіх 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 у параўнанні з Django. 112 00:05:13,191 --> 00:05:16,380 Так што, калі вы паглядзіце, як нешта, "Як я магу зрабіць х" у Django, 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 Але лакальны: 5000 133 00:06:23,960 --> 00:06:27,650 >> І так, прама зараз, усё гэта робіць ёсць, калі вы наведваеце вэб-сайт, 134 00:06:27,650 --> 00:06:31,490 ён друкуе "Hello Настай," які ня супер карысна, 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 >> Так што, спадзяюся, вы некалькі зручна выкарыстоўваць Python. 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 >> Такім чынам, першая радок з Настай, мы імпартуем, колба з капіталам "F" 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 "имя_интерфейса _ ==" _ main_ "', які з'яўляецца Сартаваць канвенцыі Python. 151 00:07:28,760 --> 00:07:32,750 Так што гэта будзе выконваць, толькі калі вам запусціць гэты файл непасрэдна, выкарыстоўваючы Python. 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 што я проста бег, таму, калі мы наведваем слэш, ён выклікае функцыю Hello World, які 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 ён друкуе Hello Word, які павінны на самай справе сказаць, Hello World, 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 (адладка = True). 197 00:10:07,160 --> 00:10:09,580 І так, што гэта адладкі аргумент робіць, гэта 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 >> І так вы на самой справе не трэба Перазапуск Python, які з'яўляецца супер карысна. 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 Так што цяпер ён кажа Hello World. 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 >> Так адладкі супер карысна для гэтага. 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 так што бачная грамадскасці, вы ніколі не хачу, каб пакінуць рэжым адладкі на, 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, які запыт GET, 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 Вы можаце звяртацца, што, як звычайная пераменная Python, 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 Вы можаце паказаць, што гэта цэлалікавых або з якая плавае кропкай, або шлях, 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 Дык вось, гэта мае той жа базавы Структура з ад імпарту Flask 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 Вы можаце Control-C з яго каб спыніць ход сервера. 270 00:13:58,440 --> 00:14:02,420 І тады я буду працаваць зменных. 271 00:14:02,420 --> 00:14:11,740 >> Такім чынам, давайце на лакальны / 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 >> І тады яны заклікаюць да Прагляды і перадачы інфармацыі ў гэтай View 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 >> Так Настой выкарыстоўваецца іншы Python модуль, які ён будзе аўтаматычна 298 00:15:35,280 --> 00:15:38,620 ўсталяваць, калі вы ўсталюеце PIP Настой называецца дзиндзя, які 299 00:15:38,620 --> 00:15:40,885 дазваляе дадаваць гэтыя Анатацыі да HTML 300 00:15:40,885 --> 00:15:45,140 што вы бачыце на экране, што дазваляе вы паклалі ў рэчах, як ўмоўныя, 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 ён будзе працаваць гэты шаблонаў рухавік і разабраць праз гэта і запоўніць рэчы ст. 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 Такім чынам, я буду працаваць прыклад шаблонаў. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> Так што, калі я іду ў / Hello / Эзра, ён мае гэта жудасна, 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 Так што проста кажа Hello World. 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 Так мы надаём / Hello маршрут і / Прывітанне / назва маршруту, каб Добры дзень, 330 00:17:41,190 --> 00:17:45,130 і мы паказваем using-- Python дазваляе вам пазначыць функцыю 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 Гэта па-ранейшаму не тлумачыць, як гэта вырашыўшы, ці трэба друкаваць Hello World, 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, у адваротным выпадку, мы будзем раздрукаваць Hello, World раз нармальна. 349 00:18:41,490 --> 00:18:45,820 Так пара рэчаў, каб заўважыць тут пра тое, як адфарматаваць шаблонаў, 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 Так, гэта значыць шаблонаў. 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 у вашым Python, 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 Python мае, я думаю, што гэта так называецца. 384 00:20:32,190 --> 00:20:33,040 SQLite 3. 385 00:20:33,040 --> 00:20:38,454 Вы можаце проста імпартаваць SQLite 3 і выконваць запыты SQL наўпрост, 386 00:20:38,454 --> 00:20:40,870 але я не ведаю пра вас, але я сапраўды не люблю, проста, 387 00:20:40,870 --> 00:20:42,750 выпісваючы SQL запытаў. 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 вядомы як ОРМ, які з'яўляецца аб'ектна-рэляцыйнага адлюстравання. 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 >> Так, напрыклад, што ў Прафесар малая, як правіла, 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 >> Так, адно пытанне, чаму вы павінны турбавацца з дапамогай ORM, 413 00:22:04,760 --> 00:22:07,552 а не проста наўпрост пісаць запыты SQL? 414 00:22:07,552 --> 00:22:09,760 І я думаю, што лепшы выпадак, з'яўляецца тое, што вы на самай справе не 415 00:22:09,760 --> 00:22:11,356 трэба напісаць запыты SQL. 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, проста таму што ён быў разбор дзіўным чынам. 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 Такім чынам, вы павінны дб = 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 Гэта мае ідэнтыфікатар, які 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 тое, што вы можаце зрабіць з Python, вы можаце мець укладзеныя класы. 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 што база роўная дб. 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 проста патэлефануеце "базавая мадэль" што мае Meta клас, 476 00:25:08,839 --> 00:25:10,380 і ўстанаўлівае базу дадзеных, роўную дб. 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 >> І, я думаю, што ён карацей, гэты запыт будзе прама тут, 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 мы павінны падлучыцца да яго ў Python. 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 І потым, што гэта важна, каб пазначыць бяспечнае = True большы час. 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 ці вы знойдзеце вашыя дадзеныя толькі атрымліваць зацёрты кожны раз. 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 таму што вы можаце выпадкова калашмаціць чужой ID. 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 што вы перабору вы хочаце. 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 толькі з дапамогай нармальнай Python Булевы, каб праверыць рэчы. 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 але тут вы выкарыстоўваць адзіны Ампэрсанд, якія, як правіла, аператар пабітавае, 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 Вы можаце выкарыстоўваць цыкл па кожнаму элементу, гэтак жа, як нармальна ў Python, 570 00:29:42,334 --> 00:29:44,500 з якой-небудзь итератора або з якой-небудзь масіў. 571 00:29:44,500 --> 00:29:46,333 Такім чынам, вы можаце зрабіць для S у student.select (). Whe 572 00:29:46,333 --> 00:29:52,930 Re (Student.grade <75), і такім чынам гэта будзе перабору кожнага студэнта ў табліцы 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 Прафесар малая, верагодна, будзе каб жадаеце выдаліць мяне з класа, 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 >> Так што цяпер у нас ёсць гэты клас Post, які спадкуе ад базавай мадэлі. 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, тэкставыя палі, 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 можна паказаць нешта накшталт унікальны = True, 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 Вы таксама можаце паказаць нешта накшталт NOT NULL і ўсе іншыя рэчы, 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 каб быць аб'ектам дб, што мы тут. 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, але Будзем спадзявацца, што мы можам засяродзіцца на Python. 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 Мы хочам, каб раздрукаваць пост назву, у H1, 758 00:40:16,600 --> 00:40:21,930 а затым ніжэй, мы хочам, каб раздрукаваць пост тэкст у абзацы. 759 00:40:21,930 --> 00:40:25,710 >> І вось, на самай справе мы можам выклікаць функцыю Python, 760 00:40:25,710 --> 00:40:35,130 такім чынам, мы можам назваць STRFTIME, ST-RF-час, і вы можаце перадаць радок фармату 761 00:40:35,130 --> 00:40:37,064 што вы хочаце, каб раздрукаваць дадзеныя ст. 762 00:40:37,064 --> 00:40:39,980 Так што гэта вельмі прыемна, што вы можаце на самай справе назваць гэтую функцыю Python 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 фарматуе гэта з добрым дата, і гэта вызначае АМ або 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 Вы можаце перабраць, усё становіцца прайшоў у, 780 00:41:32,905 --> 00:41:36,719 і так, замест таго, каб рабіць капіяваць / ўставіць, капіяваць / ўставіць HTML ўсе, 781 00:41:36,719 --> 00:41:40,010 Вы проста павінны напісаць яго адзін раз, а затым Вы можаце перабраць усе пасады. 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 >> Так, вяртаючыся да Python Код, так што тлумачыць 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 Але вы таксама можаце выкарыстоўваць запыт GET, і перадаць яго ў зменнай маршрутызацыі з, 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 >> Вяртаючыся да кода Python, калі мы назвалі метад стварэння, 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 і вось, я паказваю, што я толькі хачу, каб прыняць метад POST. 826 00:44:04,770 --> 00:44:09,800 Так што, калі я на самой справе спрабуюць наведаць старонку непасрэдна, які з дапамогай запыту GET, 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 непасрэдна з дапамогай запыту GET, або калі вы не хочаце, 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 што аб'ект формы, каб атрымаць прайшло у, гэта проста слоўнік Python, што 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 І тое, што мы не бачылі перш, быў гэты адрас функцыі. 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 так што давайце казаць, што я змяніць дадому, каб быць у / дома, а, 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 ёсць у мове Python. 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 Эзра Зігмунд: Так, так вось на самай справе, што гэта сапраўды добрая кропка. 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 >> Эзра Зігмунд: Спадзяюся, 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 >> Эзра Зігмунд: Так, гэта так. 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 >> Эзра Зігмунд: Так. 955 00:51:02,904 --> 00:51:06,070 АЎДЫТОРЫЯ 2: па змаўчанні з Peewee, або што-то вы можаце змяніць? 956 00:51:06,070 --> 00:51:10,870 Эзра Зігмунд: Так, так што порт па змаўчанні з колбы. 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 якія я думаю, калі вы хочаце, каб запусціць яго на IDE, я не спрабаваў гэта, 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 на што вы хочаце выкарыстоўваць для аднаго вэб-прыкладанні, 978 00:52:03,210 --> 00:52:07,210 што вы можаце проста паказаць кучу розных тыя, у вашай мадэлі? 979 00:52:07,210 --> 00:52:11,620 >> Эзра Зігмунд: Так, дазвольце мне адкрыць, што да рэальнага хутка. 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 Такім чынам, сайт Настой тут, і яны маюць Хуткі старт падручнік, які 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 мае дакументацыю і яны маюць Хуткі старт падручнік 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