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: Hi, ყველას. 5 00:00:05,830 --> 00:00:08,020 მადლობა გამოდის დღეს. 6 00:00:08,020 --> 00:00:10,660 ეს სემინარი "Python Web Apps ერთად Flask ". 7 00:00:10,660 --> 00:00:14,510 >> ასე რომ, მე იქნება საუბარი ცოტა შესახებ, თუ რატომ 8 00:00:14,510 --> 00:00:17,400 დაგვჭირდება გამოიყენოთ Flask რათა ვებ apps Python, როგორც ეწინააღმდეგებოდა 9 00:00:17,400 --> 00:00:21,556 ზოგიერთი სხვა ფარგლებში out არსებობს, ისევე, Django, რომელიც არის ყველაზე ცნობილი. 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 >> ასე რომ, აქ მხოლოდ სწრაფი rundown რაც მე მინდა წასვლა. 14 00:00:32,390 --> 00:00:35,520 ასე რომ, პირველი, მხოლოდ ერთი slide რომ იქნება 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 IDE. 19 00:00:48,510 --> 00:00:52,050 >> ასე რომ, მას შემდეგ, რაც მე მინდა, დანერგვა რა Flask არის, 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 გავაკეთებ Flask, სწრაფი მაგალითად რა შეგიძლიათ გააკეთოთ 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 >> და ბოლოს, ამ ბოლო slide, მაქვს 26 00:01:10,040 --> 00:01:12,730 გარკვეული რესურსები, რომ გადავხედავთ შემოსული დამატებითი ინფორმაცია. 27 00:01:12,730 --> 00:01:15,560 ეს არ არის სრული სამეურვეო თუ როგორ გამოიყენოთ Flask. 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 ან თუ გსურთ, რომ ამ up საკუთარი მანქანა, 33 00:01:29,240 --> 00:01:32,440 მე ვაპირებ იყოს გამოყენებით Python 2.7.10. 34 00:01:32,440 --> 00:01:35,860 Flask აკეთებს მუშაობა 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 თუ თქვენ არ pip დაყენებული, რომელიც არის 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 >> შეგიძლიათ გააკეთოთ pip ინსტალაცია კოლბაში, pip დააყენოთ peewee, 41 00:01:54,990 --> 00:01:58,600 როგორც წესი, თქვენ უნდა აწარმოებს sudo მხოლოდ ისე, რომ უფლებები შეიმუშაოს. 42 00:01:58,600 --> 00:02:01,080 და, თუ თქვენ იყენებთ super ძველი ვერსია Python, 43 00:02:01,080 --> 00:02:05,100 ვურჩევ განახლება თქვენი Python, ან გამოყენებით EasyInstall დააყენოთ pip. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 ასე რომ, მომდევნო კითხვაზე, თუ რა არის Flask? 46 00:02:11,120 --> 00:02:13,280 და ვფიქრობ, პირველი გონივრული შეკითხვა მე გვაინტერესებდა 47 00:02:13,280 --> 00:02:15,585 დიდი ხნის განმავლობაში, რა არის ვებ app? 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 და მე ვფიქრობ, რომ საუკეთესო მაგალითად, თუ რა ვებ app არის, 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 და რა არის web app, არის ერთგვარი თვითნებური, მაგრამ ვფიქრობ, იდეა, 56 00:02:38,780 --> 00:02:42,110 ეს რაღაც უფრო მეტია, ვიდრე ნახვა და ეს არის სასარგებლო პროგრამა. 57 00:02:42,110 --> 00:02:46,081 >> ასე რომ, Flask არის ჩარჩო მიღების ვებ apps გამოყენებით 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 >> ასე რომ, Flask არის, ისინი უწოდებენ 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 მაქვს ბმული აქ რომ ამბობს რომ ობამამ Flask 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 მაგრამ, რაც მე ნამდვილად მომწონს შესახებ Flask 71 00:03:18,770 --> 00:03:22,401 ის, რომ ეს ნამდვილად არ ნებისმიერი სახის გადაწყვეტილებებს თქვენთვის. 72 00:03:22,401 --> 00:03:24,150 მხოლოდ იმიტომ, რომ ჩვენ ვსაუბრობთ ვებ apps, 73 00:03:24,150 --> 00:03:26,940 მე უნდა შეადაროთ იგი Ruby on რელსები და 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 ლიანდაგზე აქვს ამ აქტიური ჩანაწერი სისტემა, 79 00:03:41,490 --> 00:03:43,100 რომელიც არის მართლაც ლამაზი გზა ურთიერთქმედება მონაცემები, 80 00:03:43,100 --> 00:03:45,960 მაგრამ თუ გსურთ გამოიყენოთ Ruby on რელსები, თქვენ ერთგვარი მიბმული რომ. 81 00:03:45,960 --> 00:03:47,835 მაგრამ Flask, როგორც მე აგიხსნით peewee, 82 00:03:47,835 --> 00:03:49,830 თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი სახის მონაცემთა ბაზის გსურთ, 83 00:03:49,830 --> 00:03:53,980 და თქვენ შეგიძლიათ უბრალოდ გაიყვანოს, რომ როგორც გაგრძელების შევიდა Flask. 84 00:03:53,980 --> 00:03:56,350 >> ასე რომ, რატომ მე ნამდვილად ისევე როგორც Flask, ის არის, რომ ეს 85 00:03:56,350 --> 00:04:01,170 არ ვარაუდები თქვენთვის საფუძველზე რამ, რაც არ უნდა ნამდვილად. 86 00:04:01,170 --> 00:04:04,440 >> ასე რომ, რატომ უნდა გამოიყენოთ Flask? 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 ასე რომ, თქვენ არ უნდა ფიქრი გაგება მთელი bunch რამ 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 ზოგიერთი მათგანი, Flask აქვს საკუთარი მხარდაჭერა. 96 00:04:24,700 --> 00:04:28,230 ასე რომ რაღაც მოუწოდა Flask admin, რომელიც ასახავს, ​​რომ admin 97 00:04:28,230 --> 00:04:32,060 პანელი, რომელიც Django უზრუნველყოფს, რომელიც გაძლევთ ლამაზი ვიზუალური გზა 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 ალბათ, არ უნდა დიდი admin პანელი, ასე რომ მე ვფიქრობ, რომ სუპერ ლამაზი. 101 00:04:39,550 --> 00:04:45,940 და უარყოფითი მხარეები არიან, რომ თქვენ გაქვთ ნაკლები ძალა იმ ყუთში. 102 00:04:45,940 --> 00:04:49,660 ასე რომ, როდესაც თქვენ გახსენით Flask, და თქვენს Python პროგრამა, 103 00:04:49,660 --> 00:04:53,150 თქვენ უბრალოდ აკრიფოთ Flask იმპორტის *, ან რასაც, 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 არის, რომ არსებობს ნაკლებად სტანდარტიზებული კონვენციების, თუ როგორ გამოიყენოთ Flask, 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 ასე რომ, თუ გადავხედავთ რაღაც, "როგორ გავაკეთო X" 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 მაგრამ Flask, ეს ერთგვარი წასვლა საკუთარი გზა, 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 >> მოდით უბრალოდ ხტომა მარჯვენა Flask. 120 00:05:31,909 --> 00:05:34,200 ეს არის ნამდვილად არ აპირებს იყოს სრული tutorial, 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 იგი ბეჭდავს out "Hello Flask" რომელიც არ არის სუპერ სასარგებლო 135 00:06:31,490 --> 00:06:34,630 მაგრამ მე ვფიქრობ, რომ ეს არის მაგარი, რომ ამ პატარა ფაილი აქ, 136 00:06:34,630 --> 00:06:37,390 ჩვენ გვაქვს ვებ სერვერზე გაშვებული რომ არის ბეჭდვის out რაღაც. 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 >> ასე რომ, პირველი ხაზი არის, Flask, ჩვენ იმპორტი, Flask კაპიტალის "F" 144 00:07:03,974 --> 00:07:06,140 რომელიც არის ერთგვარი ყველა ძირითადი მახასიათებლები, რომელიც გჭირდებათ. 145 00:07:06,140 --> 00:07:08,890 როდესაც თქვენ წერა ფაილი და გამოყენებით Flask, 146 00:07:08,890 --> 00:07:12,120 თქვენ აპირებს გსურთ იმპორტი, რომელიც, მხოლოდ იმიტომ, რომ ყველა ძირითადი რამ. 147 00:07:12,120 --> 00:07:15,400 შემდეგი რამ, რასაც ჩვენ ვაკეთებთ, რომ ჩვენ დარეკეთ ამ ფუნქციის Flask, უბრალოდ 148 00:07:15,400 --> 00:07:19,270 შექმნათ app ობიექტი, და თქვენ ყოველთვის მინდა, რომ. 149 00:07:19,270 --> 00:07:25,960 >> და მაშინ, jumping ქვემოთ ქვედა სწრაფად, ეს ნაწილი აქ არის, 150 00:07:25,960 --> 00:07:28,760 "if_name _ ==" _ main_ ", რომელიც ერთგვარი Python კონვენციას. 151 00:07:28,760 --> 00:07:32,750 ასე რომ, ეს იქნება მხოლოდ შეასრულოს თუ გაუშვით ეს ფაილი პირდაპირ გამოყენებით Python. 152 00:07:32,750 --> 00:07:36,040 ამის შემდეგ, ჩვენ მოვუწოდებთ app.run, რომელიც რეალურად დაიწყოს app აპირებს. 153 00:07:36,040 --> 00:07:39,570 >> ასე რომ, მთავარი სტრუქტურა, რომელიც თქვენ ნებისმიერ Flask განცხადება, 154 00:07:39,570 --> 00:07:48,550 არის, რომ თქვენ გაქვთ ეს app = Flask (_NAME_), და შემდეგ app.run. 155 00:07:48,550 --> 00:07:54,940 >> ასე რომ, ორი რამ, რომ მე მაქვს აქ, არის ის, რაც ჩვენ მოვუწოდებთ მარშრუტები. 156 00:07:54,940 --> 00:07:57,150 ასე რომ, მოდით ვისაუბროთ routing ცოტა მეტი. 157 00:07:57,150 --> 00:07:58,430 მე დაბრუნდეს slide. 158 00:07:58,430 --> 00:08:02,540 >> ასე რომ, ყველაზე ფუნდამენტური კონცეფცია Flask არის routing. 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 ასე რომ, თუ თქვენ ხართ უცხო ერთად ფუნქცია დეკორატიული in 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 და დასძენს მეტი ინფორმაცია მას, მაგრამ რა Flask რეალურად 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 უბრალოდ slash მარშრუტი. 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 მხოლოდ ბრუნდება სიმებიანი, Hello Flask, და რომ იღებს ბეჭდვითი ეკრანზე. 185 00:09:20,470 --> 00:09:27,290 >> ასე რომ, კიდევ ერთი მაგალითია, რაც არის, როდესაც თქვენ ეწვევა / hello, 186 00:09:27,290 --> 00:09:30,370 იგი ბეჭდავს out გაუმარჯოს სიტყვა, რომელიც უნდა ვთქვათ, 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 >> ასე რომ, თუ წასვლა localhost / hello, იგი ახლა ბეჭდვა რაღაც. 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 up, ის არის, რომ მე 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 ნება მომეცით გაიყვანოს ჩემი კოდი ერთად typo მასში, 203 00:10:26,960 --> 00:10:30,420 და ვიტყვი, რომ შეცდომას ჩაიდო იქ განზრახ for სასწავლო მიზნებისათვის. 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 და თუ ჩვენ უკან დახევის up ტერმინალში, თქვენ 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 ერთი რამ უნდა იცოდეს, არის რომ თუ თქვენ დააყენა თქვენი app ონლაინ 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, რომელიც ოჯახის მოთხოვნით, 234 00:12:03,620 --> 00:12:07,490 მაგრამ Flask, შეგიძლიათ რეალურად ამის რაიმე სახის როგორც, რომ, 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 ჩვენ მარშრუტი, რომელიც არის ('/ hello / "), ასე რომ, თუ თქვენ ეწვევა 238 00:12:19,930 --> 00:12:23,790 / hello / რაღაც, რაღაც აპირებს რეალურად მიიღონ filled 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 და ასე შემდეგ, ეს იქნება ბეჭდვა Hello, და ეს 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, ან float, ან გზა, 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 მხოლოდ გამოყენებით მსახიობი, მაგრამ ზოგჯერ, თუ გსურთ, რათა უზრუნველყოს, რომ ეს არის int, 254 00:13:09,710 --> 00:13:12,080 შეგიძლიათ დააყენა, რომ კონვერტაციის წესი არსებობს. 255 00:13:12,080 --> 00:13:15,930 >> მოდით დახევის up მაგალითად ზოგიერთი ცვლადის წესები. 256 00:13:15,930 --> 00:13:21,480 ასე რომ, აქ, ეს იგივე ძირითადი სტრუქტურა ეხლა Flask იმპორტი 257 00:13:21,480 --> 00:13:25,030 კოლბაში, app = Flask (_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 და ეს იქნება ამობეჭდოთ Hello, სახელი. 262 00:13:35,650 --> 00:13:41,410 >> და მაშინ, მეორე ერთი იყენებს კონვერტაციის. 263 00:13:41,410 --> 00:13:44,690 ასე რომ, ეს ავტომატურად გარდაქმნას მას to 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 იმიტომ, რომ Flask ზრუნავს, რომ. 267 00:13:49,594 --> 00:13:53,181 მოდით ამ გაშვებული. 268 00:13:53,181 --> 00:13:54,930 როდესაც თქვენ გაქვთ Flask განაცხადის გაშვებული, 269 00:13:54,930 --> 00:13:58,440 თქვენ შეგიძლიათ კონტროლი-C გარეთ შეჩერება სერვერზე გაშვებული. 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 >> ასე, რომ თქვენ ასევე შეგიძლიათ ეს გააკეთოთ ერთად float, და რაღაც განსაკუთრებული, 278 00:14:34,190 --> 00:14:37,530 თუ თქვენ უნდა მიუთითოთ რაღაც გზა, რომელიც საშუალებას მას მიიღოს slashes, 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 ასე რომ, კოდი შეგვიძლია ჩადეთ რამე როგორც ბ-tag, რათა ის თამამი, 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 >> Flask საშუალებას გვაძლევს გამოყოფა გარეთ 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 ფინანსთა ცოტა, შეგიძლიათ წარმოიდგინოთ, რომ პითონი ფაილი 292 00:15:15,520 --> 00:15:19,430 როგორც უფრო Controller, სადაც ისინი ურთიერთქმედებენ რასაც 293 00:15:19,430 --> 00:15:20,970 მონაცემთა მოდელი ალბათ. 294 00:15:20,970 --> 00:15:24,900 >> და მაშინ ისინი დარეკვით out ნახვა და ინფორმაციას აწვდიდნენ, რომ ნახვა 295 00:15:24,900 --> 00:15:28,120 შეავსოთ ინფორმაცია HTML, რომ მას სჭირდება. 296 00:15:28,120 --> 00:15:30,490 და რაც ჩვენ მოვუწოდებთ მათ, ნახვები არიან Templates კლასში. 297 00:15:30,490 --> 00:15:35,280 >> ასე რომ, Flask იყენებს სხვა Python მოდული, რომ ეს ავტომატურად 298 00:15:35,280 --> 00:15:38,620 ინსტალაცია, როდესაც თქვენ პიპ ინსტალაცია Flask მოუწოდა Jinja, რომელიც 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 მაგრამ ეს მხოლოდ მაშინ, როდესაც Flask სერვერზე ემსახურება up HTML ფაილი, 304 00:15:57,380 --> 00:16:01,610 იგი აწარმოებს ამ templating ძრავა და გარჩევის გზით ამ და შეავსოთ რამ. 305 00:16:01,610 --> 00:16:06,650 ასე რომ, Flask აქვს 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 ეს ავტომატურად გამოიყურება ფარგლებში Templates საქაღალდე, რომ თარგი. 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 >> ასე რომ, თუ მე წასვლა / 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 / სახელი მარშრუტი Hello, 330 00:17:41,190 --> 00:17:45,130 და ჩვენ დააკონკრეტა using-- Python გაძლევთ დააკონკრეტა, რა ფუნქცია არგუმენტი 331 00:17:45,130 --> 00:17:48,300 ასე რომ, თუ არ არსებობს სახელი, ამიტომ თუ ჩვენ უბრალოდ / hello, 332 00:17:48,300 --> 00:17:50,680 ეს ავტომატურად გავფილტროთ რომ სახელი უდრის არა. 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 ასე რომ, აქ, ჩვენ შეამოწმოს, თუ სახელი, ამიტომ თუ სახელი არ არის ტოლი არა, 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 ასე რომ, რამდენიმე რამ შეამჩნია აქ შესახებ, თუ როგორ ფორმატის 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 ასე რომ, აქ არის ორმაგი braces, და მაშინ ჩვენ დააკონკრეტა სახელი, 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 ჩვენ რეალურად უნდა იმპორტი ეს მკაფიოდ ეხლა Flask. 366 00:19:34,490 --> 00:19:36,915 ეს არის მაგალითი იმისა, modularity of Flask, 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 და დაამატოთ ცოტა მეტი ლოგიკა ეს, იმ თვალსაზრისით, ცვლადი routing. 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 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 >> ასე რომ, ORM, რომ მე მიყვარს გამოიყენოს ეწოდება peewee. 405 00:21:40,840 --> 00:21:43,520 ეს მართლაც მცირე, სახის, როგორიცაა Flask. 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 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 უნდა იცოდეს, ის არის, რომ რომ ORM ყველანაირად შეეცდება 421 00:22:25,710 --> 00:22:28,640 გაერკვნენ, თუ რა ყველაზე ეფექტური SQL query იქნება, 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 და თუ გადავხედავთ ქვეშ hood როგორ რომ ORM არის წერით რომ შევიდა 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 და, არ ყოფილა ჯერ, სადაც მე მქონდა override, და უბრალოდ 430 00:22:48,080 --> 00:22:52,429 შეასრულოს საკუთარი SQL queries, უბრალოდ იმიტომ, რომ ეს იყო parsing უცნაური გზა. 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 ასე რომ, ეს არის პითონში, და ასე პირველი, რაც თქვენ გჭირდებათ რომ გააკეთოთ, არის 436 00:23:11,880 --> 00:23:12,950 peewee იმპორტის *. 437 00:23:12,950 --> 00:23:15,850 ასე რომ, განსხვავებით Flask, სადაც თქვენ უნდა ყველა ამ ინდივიდუალური მოდულები, 438 00:23:15,850 --> 00:23:18,125 და გსურთ იმპორტი Flask და დაწერა თარგი, და სხვები 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 და კაპიტალის M მოდელი ის, რაც განსაზღვრულია 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 ასე რომ, ამ კლასში Meta, თქვენ უნდა დააკონკრეტა, რომ მონაცემთა ბაზა 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 თქვენ უბრალოდ უნდა მიუთითოთ ამ Meta კლასის 472 00:24:59,380 --> 00:25:01,400 რომ მონაცემთა ბაზაში უდრის ბ. 473 00:25:01,400 --> 00:25:03,940 ასე რომ, რაც მე, როგორც წესი, ამის გაკეთება, თუ მაქვს bunch სხვადასხვა მოდელები, 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 და მერე არ უნდა ფიქრი შესახებ შექმნის Meta კლასის. 479 00:25:16,760 --> 00:25:21,490 >> ასე რომ, როდესაც ეს რეალურად იღებს შედგენილი ქვემოთ შევიდა SQL განაცხადი, 480 00:25:21,490 --> 00:25:24,875 როგორც ჩანს, ეს ძალიან რამ ქვემოთ აქ, "შექმნა მაგიდა სტუდენტი ID რიცხვი, 481 00:25:24,875 --> 00:25:26,020 " რა მნიშვნელობა აქვს. 482 00:25:26,020 --> 00:25:30,002 >> და მე ვფიქრობ, რომ ეს არის მოკლე, ამ SQL query უფლება აქ, 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 და ასე, მე ვფიქრობ, რომ შევხედავთ ამ პითონში 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 იგი იღებს მონაცემთა ბაზაში ობიექტის db და ეს 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 app ერთხელ, ის ხელახლა იგი. 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 grade წიგნაკი მაგალითად, 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 >> გაითვალისწინეთ, რომ მე არ უნდა მიუთითოთ ID, 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 ალბათ აირჩიოთ out მონაცემთა ბაზის ერთხელ თქვენ 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 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 პითონში, თქვენ ჩვეულებრივ გამოყენება, მე ვფიქრობ, რომ სიტყვა "და" რეალურად, 562 00:29:19,840 --> 00:29:23,351 მაგრამ აქ თქვენ გამოიყენოს ერთჯერადი ampersand, რომელიც ჩვეულებრივ bitwise ოპერატორი, 563 00:29:23,351 --> 00:29:25,600 მაგრამ ამ განსაკუთრებულ შემთხვევაში, უბრალოდ გზა peewee აკეთებს, 564 00:29:25,600 --> 00:29:27,660 თქვენ გამოიყენოს ერთჯერადი ampersand უნდა მიუთითოთ "და". 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 >> და მაშინ, ერთხელ თქვენ გაქვთ ყველა სტუდენტები out მონაცემთა ბაზა, 568 00:29:36,350 --> 00:29:39,420 ერთხელ თქვენ გააკეთეთ თქვენ აირჩიეთ და თქვენი აცვიათ ან რასაც, 569 00:29:39,420 --> 00:29:42,334 თქვენ შეგიძლიათ გამოიყენოთ foreach loop, ისევე, როგორც ჩვეულებრივი Python, 570 00:29:42,334 --> 00:29:44,500 ნებისმიერი სახის iterator ან რაიმე სახის მასივი. 571 00:29:44,500 --> 00:29:46,333 ასე, რომ თქვენ შეგიძლიათ გააკეთოთ, s ამ student.select (). whe 572 00:29:46,333 --> 00:29:52,930 ხელახალი (Student.grade <75), და ეს ნება გადაურბინოთ თითოეული სტუდენტი მაგიდასთან 573 00:29:52,930 --> 00:29:56,260 რომლის grade ნაკლებია, ვიდრე 75, რომელიც ამ შემთხვევაში, ჯერ კიდევ მხოლოდ ჩემთვის. 574 00:29:56,260 --> 00:29:59,218 და მაშინ შეიძლება რაღაც ფარგლებში რომ loop, როგორც გამომიგზავნოთ ელ 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, ასე რომ თქვენ მოუწოდა .გადარჩენის მეთოდი 586 00:30:31,410 --> 00:30:32,650 on მაგალითად. 587 00:30:32,650 --> 00:30:38,085 >> და ახლა, მე წარმატებით შეიცვალა ჩემს grade მონაცემთა ბაზაში. 588 00:30:38,085 --> 00:30:41,210 ასე რომ, ვთქვათ, რომ მე დაიჭირეს იცვლება ჩემი grade მონაცემთა ბაზაში. 589 00:30:41,210 --> 00:30:44,126 პროფესორი Malan ალბათ აპირებს რომ გსურთ წაშალოთ ჩემს კლასში, 590 00:30:44,126 --> 00:30:48,630 და ასე რომ თქვენ შეგიძლიათ დარეკოთ .წაშლა მაგალითად მეთოდი მხოლოდ იმ რამ. 591 00:30:48,630 --> 00:30:51,674 >> ასე რომ, თუ მინდოდა წასვლა ისევ ამ loop აქ, 592 00:30:51,674 --> 00:30:53,465 და ფაქტობრივად, ნაცვლად გაგზავნის წერილებს ყველა 593 00:30:53,465 --> 00:30:56,577 სტუდენტების რომლის grade ნაკლებია 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 სადაც db არის, რომ მონაცემთა ბაზაში წინააღმდეგი, რომ ჩვენ გვქონდა ადრე. 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 შეცდომები, მაგრამ ჩვენ შეგვიძლია გავლა და ვნახოთ, თუ როგორ დააყენა Flask 604 00:31:30,220 --> 00:31:33,685 და Peewee ერთად, და მარტივი app. 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 Okay, ასე რომ, მოდით უბრალოდ გაუშვით ეს. 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 >> ასე რომ, თუ ჩვენ გვინდა, რომ შევქმნათ ახალი პოსტი, ჩვენ შეგვიძლია წავიდეთ დამატება New Post, 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 Wow, ნამდვილად მოსარგებლე სემინარი. 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 ჩვენ იზრუნებს ავტომატურად ქმნის, რომ ID სფეროში, 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 ასევე შეგიძლიათ მიუთითოთ რაღაც არ 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 და შემდეგ წამების ყოველთვის იქნება იგივე. 672 00:35:40,180 --> 00:35:44,240 ასე რომ, მხოლოდ იმ შემთხვევაში, თუ თქვენ აკეთებთ რაღაც ერთად datetimes, double გამშვები 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 დაუშვებს, რომ საკმაოდ ხანგრძლივი string. 681 00:36:03,370 --> 00:36:05,970 >> მაშინ ამ Meta ქვეკლასით, რომ მხოლოდ 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 რომ ჩვენ ვაპირებთ გამოიყენოთ ჩვენი მთავარი app 686 00:36:18,120 --> 00:36:23,970 ვრთავ მონაცემთა ბაზის დაკავშირება იგი, და მაშინ უნდა შეიქმნას Post მაგიდასთან. 687 00:36:23,970 --> 00:36:26,880 >> ახლა, მოდით შევხედოთ მთავარი app თავად. 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 ნება მიბოძეთ, ვრცელდება ამ out. 691 00:36:37,140 --> 00:36:38,370 კარგი. 692 00:36:38,370 --> 00:36:42,070 >> ასე რომ, შეამჩნია და ზედა მე იმპორტირებული მთელი bunch სხვა რამ 693 00:36:42,070 --> 00:36:44,129 საწყისი Flask რომ ჩვენ არ გვაქვს ნამდვილად მინახავს ადრე. 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 ასე რომ, ჩვენ გვაქვს Flask, და 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 გადამისამართება, რომელიც საშუალებას გაძლევთ გადამისამართება უკან შექმნა New Post 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 და, yeah. 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., I მჯერა, რომ ეს 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 წლის db ობიექტი. 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 >> Okay, და დანარჩენი, ეს არ არის ძალიან ცუდი. 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 template, 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 >> ასე რომ, არსებობს ბმული ახალი Post, და ეს განსაზღვრავს მარშრუტი 750 00:39:46,960 --> 00:39:51,580 ფარგლებში Flask, რომ ჩვენ განსაზღვრა, რომელიც სწორედ აქ. 751 00:39:51,580 --> 00:39:56,310 ეს არის ახალი პოსტი მარშრუტი, და ჩვენ დააკონკრეტა, რომ აქ. 752 00:39:56,310 --> 00:40:00,450 და ისე, რომ ბმული, რომელიც მაშინ წავიდეთ რომ მარშრუტი ფარგლებში Flask სერვერზე. 753 00:40:00,450 --> 00:40:03,820 >> უფრო საინტერესოა, ეს არის ამისთვის loop აქ. 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-time, და თქვენ ვერ გაივლის სტრიქონში 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 თუ გადავხედავთ up დოკუმენტაცია იმ 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 არის, რომ თქვენ შეგიძლიათ გამოიყენოთ ამ loop. 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 და ასე, ნაცვლად, რომელმაც უნდა გააკეთოს ასლი / პასტა, ასლი / პასტა ყველა 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, თქვენ იყენებთ ორმაგი braces აქ, 787 00:41:54,780 --> 00:41:57,820 მაგრამ მაშინ, როდესაც გსურთ მიუთითოთ გარკვეული ინფორმაცია მდგომარეობაში, 788 00:41:57,820 --> 00:42:02,430 ან დაახლოებით ამისთვის მარყუჟის, თქვენ გამოიყენოთ პროცენტი bracket. 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 >> ასე რომ, როდესაც თქვენ დააჭირეთ ახალი Post ბმული, რომელიც ჩვენ ვნახეთ, აქ 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 ჩვენ რეალურად დააკონკრეტა მარშრუტი ფარგლებში Flask სერვერზე. 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 უბრალოდ, ასე რომ თქვენ არ დასრულდება მდე ეს დიდი, unwieldy URL. 812 00:43:15,760 --> 00:43:18,970 მაგრამ თქვენ შეიძლება ასევე გამოიყენოს GET თხოვნა, და გაიაროს ეს ცვლადი routing, 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 და ეს არის სახელი, რომელიც გავიდა შევიდა თხოვნა ობიექტის ფარგლებში Flask. 817 00:43:33,490 --> 00:43:36,960 >> და მაშინ ჩვენ წარუდგინოს ღილაკს, რომელიც ამბობს Post. 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 ასე რომ, თუ მე რეალურად ცდილობენ ეწვევა გვერდი პირდაპირ, რომელიც გამოყენებით 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 ეწოდება, როდესაც ჩვენ ეწვევა, რომ მეშვეობით 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-- ასე რომ, აქ, ნება ჩემთვის დახევის up 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 ძლიერი Flask არის და მუშაობა ამ, იმიტომ, რომ თუ თქვენ აკეთებთ რაღაც 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 query, 855 00:45:55,210 --> 00:45:59,550 მაგრამ აქ ჩვენ მხოლოდ ამ ლამაზი post.create, რომელიც შეგვიძლია მაშინ მხოლოდ 856 00:45:59,550 --> 00:46:01,520 ინფორმაციის მისაღებად out მოთხოვნის ობიექტი, 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 ასე რომ, ჩვენ გამოიყენოს ეს Flask გადამისამართება ფუნქცია. 861 00:46:13,020 --> 00:46:17,770 ხოლო ის, რაც ჩვენ არ უნახავს ადრე იყო ამ URL ფუნქცია. 862 00:46:17,770 --> 00:46:21,970 ასე რომ, URL for ფუნქცია საშუალებას თქვენ გაივლის რეალურად სახელი 863 00:46:21,970 --> 00:46:26,090 ფუნქცია თქვენი პითონში, ვიდრე კონკრეტული მარშრუტი 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 >> ასე რომ, ერთგვარი on ვარაუდი, რომ თქვენ 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 for, 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 და როდესაც თქვენ დააჭირეთ ჩანაწერი, ის მიდის ახალი მარშრუტი ფარგლებში Flask, 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: თქვენ უნდა გავაკეთოთ რამე სპეციალური scrub მონაცემები, რომ ის 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 რომ მონაცემები სწორი, და რაიმე სახის scrubbing 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 ასე რომ, ეს, ფაქტობრივად, მხოლოდ მიიღოს ცარიელი პოსტი და შეავსოთ წამების. 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 ასე რომ, ეს ფაქტობრივად არ ავტომატურად იზრუნოს, რომ scrubbing 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: აქვს თუ არა მას scrub გაგრძელებაა ინექცია? 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 არ გააკეთებს გარკვეული scrubbing მონაცემები 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 არის outputting, არის თუ რამ ჩანს, აპირებს მართლაც ნელა, 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 იმას ნიშნავდა, რომ აირჩიოთ subset. 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: დიახ, ასე რომ პორტი იყოს ერთად Flask. 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 port = 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 ჰო, ასე რომ თქვენ შეგიძლიათ მიუთითოთ port = 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 ნებისმიერი სახის, როგორიცაა port-საექსპედიტორო რამ, რომ თქვენ უნდა გავაკეთოთ. 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 app, 978 00:52:03,210 --> 00:52:07,210 რომ თქვენ შეგიძლიათ მხოლოდ მიუთითოთ bunch სხვადასხვა პირობა თქვენი მოდელი? 979 00:52:07,210 --> 00:52:11,620 >> EZRA Zigmond: ჰო, ნება მომეცით გახსნა რომ რეალური სწრაფი. 980 00:52:11,620 --> 00:52:17,570 ასე რომ, თქვენ ამბობთ, თუ გსურთ აქვს bunch სხვადასხვა რაღაც, შესაძლოა, 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 >> ასე რომ მხოლოდ დასრულდება up პატარა ცოტა, აქ არის გარკვეული რესურსები, 994 00:53:02,170 --> 00:53:06,030 და ეს სლაიდები დაიდება ონლაინ ასე რომ თქვენ შეგიძლიათ რეალურად მიიღონ ამ კავშირების. 995 00:53:06,030 --> 00:53:08,500 საუკეთესო რესურსი ნამდვილად დოკუმენტაცია Flask 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 ასე რომ, Flask ნახვა აქ არის, და მათ აქვთ 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 tutorial 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