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 قد ترغب في استخدام قارورة لجعل تطبيقات الويب مع بيثون، كما عارض 9 00:00:17,400 --> 00:00:21,556 لبعض الأطر الأخرى هناك، مثل جانغو، والذي هو الأكثر المعروفة. 10 00:00:21,556 --> 00:00:24,330 العنوان الفرعي هو "و بيوي "، وهو أمر 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 انا ذاهب الى أن تثبت هذا على بلدي المحلية الجهاز ماك، 17 00:00:41,760 --> 00:00:45,220 لمجرد ذلك حيث أنني قد فعلت ذلك من قبل، أنا أكثر راحة معها، 18 00:00:45,220 --> 00:00:48,510 ولكن هذا هو بالتأكيد ممكن على IDE CD50. 19 00:00:48,510 --> 00:00:52,050 >> لذلك، وبعد ذلك، أريد أن إدخال ما هي قارورة، 20 00:00:52,050 --> 00:00:55,089 واقناع لكم لماذا يجب أن استخدامه في المقام الأول. 21 00:00:55,089 --> 00:00:56,880 ثم، سأعطيك سريعة مثال على ما كنت 22 00:00:56,880 --> 00:01:00,550 يمكن القيام به في قارورة، مثال سريع ما يمكنك القيام به في بيوي، 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 أنا ذاهب إلى استخدام بايثون 2.7.10. 34 00:01:32,440 --> 00:01:35,860 قارورة يعمل مع بيثون 3، لكني أحب 35 00:01:35,860 --> 00:01:38,660 باستخدام بايثون 2، لأنه لا يوجد بعض الحزم بيثون أن 36 00:01:38,660 --> 00:01:40,910 لا تعمل مع 3 حتى الان. 37 00:01:40,910 --> 00:01:44,800 إذا كنت قد قمت بتثبيت برنامج تطبيق السلام، التي هو مدير مجموعة بيثون، 38 00:01:44,800 --> 00:01:48,190 اعتقد انه اذا بيثون الخاص بك هو أكبر من أو يساوي 2.7.9، 39 00:01:48,190 --> 00:01:52,220 كنت قد ركبت عليه بالفعل، انها السوبر سهلة لتثبيت هذه الحزم. 40 00:01:52,220 --> 00:01:54,990 >> لا يمكنك تثبيت نقطة قارورة، برنامج تطبيق السلام تثبيت بيوي، 41 00:01:54,990 --> 00:01:58,600 عادة لديك لتشغيل سودو فقط ذلك أن أذونات العمل بها. 42 00:01:58,600 --> 00:02:01,080 وإذا كنت تستخدم السوبر القديم من بيثون نسخة، 43 00:02:01,080 --> 00:02:05,100 أوصي تحديث بيثون الخاص بك، أو باستخدام EasyInstall لتثبيت نقطة. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 لذا، فإن السؤال التالي هو، ما هو قارورة؟ 46 00:02:11,120 --> 00:02:13,280 وأعتقد، لأول مرة سؤال معقول كنت أتساءل 47 00:02:13,280 --> 00:02:15,585 لفترة طويلة هو، ما هو التطبيق على شبكة الإنترنت؟ 48 00:02:15,585 --> 00:02:17,960 لأن هذا هو الكلمة التي I اعتقد يتم طرح حولها الكثير 49 00:02:17,960 --> 00:02:19,240 أن لم أكن أعرف حقا. 50 00:02:19,240 --> 00:02:22,340 وأعتقد أن الأفضل مثال على ما هو التطبيق على شبكة الإنترنت، 51 00:02:22,340 --> 00:02:26,960 هو حقا CS50 المالية، حيث انها ليست في الحقيقة مجرد موقع على شبكة الانترنت، 52 00:02:26,960 --> 00:02:29,320 ولكن هذا شيء لك يمكن نوع من التفاعل معها. 53 00:02:29,320 --> 00:02:31,736 هناك حسابات المستخدمين و كل أنواع الأشياء المختلفة. 54 00:02:31,736 --> 00:02:35,010 لذلك، حيث بالضبط ترسمه الخط الفاصل بين ما هو موقع على شبكة الانترنت، 55 00:02:35,010 --> 00:02:38,780 وما هو التطبيق على شبكة الإنترنت، هو نوع من تعسفيا، ولكن اعتقد ان فكرة، 56 00:02:38,780 --> 00:02:42,110 انه شيء أكثر من موقع على شبكة الانترنت وانها تطبيق مفيد. 57 00:02:42,110 --> 00:02:46,081 >> لذلك، قارورة هي إطار ل جعل تطبيقات الويب باستخدام بيثون. 58 00:02:46,081 --> 00:02:48,330 ونأمل بحلول نهاية هذا، وسوف إقناعك 59 00:02:48,330 --> 00:02:52,210 هل يمكن أن أكتب شيئا في الواقع مثل CS50 المالية باستخدام بيثون، وأنا 60 00:02:52,210 --> 00:02:53,950 مثل أفضل كثيرا من PHP شخصيا. 61 00:02:53,950 --> 00:02:57,320 >> لذلك، قارورة هو، يسمونه microframework، الذي، 62 00:02:57,320 --> 00:02:59,800 أنها تعني انها جدا بسيطة، ولكن للمد. 63 00:02:59,800 --> 00:03:02,980 لذلك، ليس لديها إلا ما تحتاج إليه، ولكن إذا كنت تريد المزيد من الميزات، 64 00:03:02,980 --> 00:03:04,522 فإنه من السهل لجعلها. 65 00:03:04,522 --> 00:03:06,480 ولكن لمجرد انها microframework، لا 66 00:03:06,480 --> 00:03:08,960 يعني أنه ليست سوى للمشاريع الصغيرة. 67 00:03:08,960 --> 00:03:12,590 لدي الرابط هنا أن يقول أن أوباما استخدم قارورة في عام 2012 68 00:03:12,590 --> 00:03:14,410 لحملته الانتخابية على شبكة الإنترنت، والتي من المؤمل، 69 00:03:14,410 --> 00:03:16,937 هو شيء من التأييد. 70 00:03:16,937 --> 00:03:18,770 ولكن الشيء الذي أنا أحب حول قارورة 71 00:03:18,770 --> 00:03:22,401 غير ذلك، فإنه لا يجعل حقا أي نوع من القرارات بالنسبة لك. 72 00:03:22,401 --> 00:03:24,150 فقط لأننا نتحدث عن تطبيقات الويب، 73 00:03:24,150 --> 00:03:26,940 لدي لمقارنته ب روبي على القضبان وجانغو، وكلاهما 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 >> على سبيل المثال، روبي على القضبان يحتوي هذا النظام سجل نشط، 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 ولكن مع قارورة، وسوف أكون تظهر لك مع بيوي، 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 لذلك، عند فتح أولا قارورة، وفي برنامج بيثون الخاص بك، 103 00:04:49,660 --> 00:04:53,150 كنت اكتب فقط من قارورة استيراد *، أو أيا كان، 104 00:04:53,150 --> 00:04:55,957 كنت لا بالضبط الحصول على كل الميزات التي قد ترغب. 105 00:04:55,957 --> 00:04:58,540 ولذا عليك أن أكثر صراحة قائمة الميزات التي تريدها. 106 00:04:58,540 --> 00:05:01,990 ولهذا عيب واحد، ولكن أنا أعتقد أن لبناء صغير على شبكة الإنترنت 107 00:05:01,990 --> 00:05:04,782 تطبيقات مثل أنا على وشك أن تظهر لك، وهذا ليس حقا مشكلة. 108 00:05:04,782 --> 00:05:07,281 وما هو آخر شيء من المفترض أن أقول، وهو خطأ مطبعي، 109 00:05:07,281 --> 00:05:10,240 غير أن هناك أقل موحدة الاتفاقيات حول كيفية استخدام قارورة، 110 00:05:10,240 --> 00:05:12,400 فقط لأن هناك ليست كثيرة كما الناس التي تستخدمها مهنيا 111 00:05:12,400 --> 00:05:13,191 مقارنة جانغو. 112 00:05:13,191 --> 00:05:16,380 لذلك، إذا كنت تبحث شيء من هذا القبيل، "كيف أفعل س" في جانغو، 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 انا ذاهب لفتح سفاري، و انها تعمل على بلدي المضيف المحلي. 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 ذلك بطباعة "مرحبا قارورة" وهي ليست مفيدة عظمى، 135 00:06:31,490 --> 00:06:34,630 ولكن اعتقد انها باردة أن في هذا الملف قليلا هنا، 136 00:06:34,630 --> 00:06:37,390 لدينا خادم الويب على التوالي أن يتم طبع شيء. 137 00:06:37,390 --> 00:06:40,500 لذا، دعونا ننظر في الواقع في رمز لثانية واحدة، 138 00:06:40,500 --> 00:06:43,080 وكسرها نزولا قليلا. 139 00:06:43,080 --> 00:06:45,260 هو حجم جيد للجميع هنا؟ 140 00:06:45,260 --> 00:06:51,560 >> لذلك، ونأمل، وكنت إلى حد ما مريحة باستخدام بيثون. 141 00:06:51,560 --> 00:06:55,820 أفترض أننا يمكن أن ننظر في بيثون وقراءة من خلال ذلك. 142 00:06:55,820 --> 00:06:59,290 إذا كان لديك أي أسئلة حول أي شيء، وأنا يمكن أن تذهب أيضا أكثر من ذلك. 143 00:06:59,290 --> 00:07:03,974 >> وبالتالي فإن السطر الأول، من قارورة، نحن استيراد، قارورة برأسمال "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 'if_name _ == "_ main_"' الذي هو نوع من اتفاقية بيثون. 151 00:07:28,760 --> 00:07:32,750 لذلك هذا سيتم تنفيذ إلا إذا كنت تشغيل هذا الملف مباشرة باستخدام بيثون. 152 00:07:32,750 --> 00:07:36,040 ثم، فإننا ندعو app.run، والتي سوف في الواقع بدء التطبيق الذهاب. 153 00:07:36,040 --> 00:07:39,570 >> لذلك، وهذا هو الهيكل الرئيسي الذي سيكون لديك في أي تطبيق قارورة، 154 00:07:39,570 --> 00:07:48,550 وسوف يكون هذا التطبيق = قارورة (_NAME_)، ثم app.run. 155 00:07:48,550 --> 00:07:54,940 >> لذا، فإن الأمرين بأنني هنا، هي ما نسميه الطرق. 156 00:07:54,940 --> 00:07:57,150 لذا، دعونا نتحدث عن توجيه أكثر قليلا. 157 00:07:57,150 --> 00:07:58,430 سوف أعود إلى الشريحة. 158 00:07:58,430 --> 00:08:02,540 >> حتى أبسط المفهوم في قارورة والتوجيه. 159 00:08:02,540 --> 00:08:06,750 وانها فكرة أنك تخصيص وظائف في بيثون 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 لذا، إذا كنت معتادا الديكور وظيفة في بيثون، 164 00:08:19,770 --> 00:08:24,160 انها هذا المفهوم أن يتيح لك اتخاذ وظيفة 165 00:08:24,160 --> 00:08:26,800 وتحيط بها مع شيء آخر. 166 00:08:26,800 --> 00:08:30,140 >> ذلك حقا، ما يفعله هذا الديكور، غير أنه يأخذ وظيفة أقل من ذلك، 167 00:08:30,140 --> 00:08:33,409 ويضيف مزيد من المعلومات لذلك، ولكن ما قارورة الواقع 168 00:08:33,409 --> 00:08:37,480 لا تجعل ذلك يحدث ليس سوبر حاسمة، ولكن ما هو مهم، 169 00:08:37,480 --> 00:08:43,640 غير أنه قبل الطريق، كنت وضع هذا @ app.route، ثم 170 00:08:43,640 --> 00:08:46,480 عنوان الطريق، وبالتالي فإن مائل هو ما نحن 171 00:08:46,480 --> 00:08:48,360 رأيت عندما نفتح فقط حتى صفحة على شبكة الإنترنت. 172 00:08:48,360 --> 00:08:49,580 لذلك هذا هو موقع. 173 00:08:49,580 --> 00:08:51,037 انها مجرد مسار مائل. 174 00:08:51,037 --> 00:08:52,370 ثم لديك هذه الوظيفة. 175 00:08:52,370 --> 00:08:54,453 اسم وظيفة يمكن أن يكون كل ما تريد. 176 00:08:54,453 --> 00:08:56,930 لم يكن لديك لبالضرورة عليك القيام به مع الطريق. 177 00:08:56,930 --> 00:08:59,440 وبعد ذلك، أيا كان عودة الدالة، 178 00:08:59,440 --> 00:09:01,730 وظيفة يجب أن تعود سلسلة. 179 00:09:01,730 --> 00:09:03,740 ويمكن أن سلسلة يحتوي HTML أو أي شيء، 180 00:09:03,740 --> 00:09:06,920 وهذا هو في الواقع ما سيحصل عاد إلى متصفح الويب الخاص بك كما HTML، 181 00:09:06,920 --> 00:09:08,200 وسوف تجعل ذلك. 182 00:09:08,200 --> 00:09:12,030 >> لذلك هذا هو نفس الرمز الذي كان من المثال 183 00:09:12,030 --> 00:09:16,430 أنا فقط ركض، لذلك عندما نزور مائل، يدعو وظيفة مرحبا العالم، والتي 184 00:09:16,430 --> 00:09:20,470 فقط بإرجاع سلسلة، مرحبا قارورة، وأن يحصل المطبوعة على الشاشة. 185 00:09:20,470 --> 00:09:27,290 >> لذلك هناك مثال آخر، وهو، عند زيارة / مرحبا، 186 00:09:27,290 --> 00:09:30,370 فإنه يطبع خارج مرحبا ورد، الذي يجب أن أقول الحقيقة، مرحبا العالم، 187 00:09:30,370 --> 00:09:32,010 ولكن دعونا نتظاهر بأن كان متعمدا. 188 00:09:32,010 --> 00:09:35,140 لذلك دعونا سحب ما يصل حقيقية سريعة. 189 00:09:35,140 --> 00:09:41,290 >> حتى إذا ذهبت إلى LOCALHOST / مرحبا، فإنه سيتم الآن طباعة أي شيء آخر. 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 (تصحيح = صحيح). 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 >> وهكذا لم يكن لديك فعلا ل إعادة تشغيل بيثون، وهو أمر مفيد عظمى. 201 00:10:21,160 --> 00:10:24,020 أنا يمكن أن تظهر ذلك. 202 00:10:24,020 --> 00:10:26,960 اسمحوا لي أن سحب قانون بلدي مع مطبعي في ذلك، 203 00:10:26,960 --> 00:10:30,420 والتظاهر بأن الخطأ المطبعي وضعت هناك عمدا لأغراض مفيدة. 204 00:10:30,420 --> 00:10:31,625 لذلك دعونا إضافة هذا مرة أخرى. 205 00:10:31,625 --> 00:10:33,140 وحتى الآن تقول مرحبا العالم. 206 00:10:33,140 --> 00:10:34,410 وسوف حفظه. 207 00:10:34,410 --> 00:10:36,540 وإذا كنا سحب نسخة احتياطية المحطة، عليك 208 00:10:36,540 --> 00:10:39,520 يقول أن الأمر إعادة التشغيل، لأنه الكشف عن التغيير، 209 00:10:39,520 --> 00:10:43,620 وحتى الآن عندما كنا تحديث الصفحة، فإنه سيتم طباعة الشيء الصحيح. 210 00:10:43,620 --> 00:10:45,630 >> لذلك التصحيح مفيد فائقة لذلك. 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 يمكنك علاج هذا مثل بايثون متغير طبيعي، 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 يمكنك أيضا القيام التحويل ضمن الدالة بيثون، 253 00:13:05,130 --> 00:13:09,710 فقط باستخدام الزهر، ولكن في بعض الأحيان إذا كنت ترغب في التأكد من انها الباحث، 254 00:13:09,710 --> 00:13:12,080 يمكنك وضع هذا حكم التحويل في هناك. 255 00:13:12,080 --> 00:13:15,930 >> لذلك دعونا سحب ما يصل مثالا بعض القواعد المتغيرة. 256 00:13:15,930 --> 00:13:21,480 حتى هنا، وهذا له نفس الأساسية هيكل مع من قارورة استيراد 257 00:13:21,480 --> 00:13:25,030 قارورة، التطبيق = قارورة (_NAME_)، ثم انها تعمل في نهاية المطاف. 258 00:13:25,030 --> 00:13:28,050 لدينا هذين مختلفة طرق متغيرة هنا. 259 00:13:28,050 --> 00:13:29,900 وأول واحد، هو واحد التي عرضتها 260 00:13:29,900 --> 00:13:34,230 في الشريحة، وهي أن فإنه يأخذ فقط في اسم سلسلة 261 00:13:34,230 --> 00:13:35,650 وسوف تطبع مرحبا، اسم. 262 00:13:35,650 --> 00:13:41,410 >> وبعد ذلك، والثاني واحد يستخدم التحويل. 263 00:13:41,410 --> 00:13:44,690 ولذلك فإن هذا سوف يتم تحويله تلقائيا إلى int، ومن ثم مضاعفة كثافة العمليات، 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 يمكنك التحكم-C للخروج منه لوقف الخادم على التوالي. 270 00:13:58,440 --> 00:14:02,420 وبعد ذلك سيتم تشغيل المتغيرات. 271 00:14:02,420 --> 00:14:11,740 >> لذلك دعونا نذهب إلى مضيف محلي / مرحبا / عزرا و نأمل، وهذا سوف يقول لي مرحبا. 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 في كود بايثون الخاص بك. 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 المالية قليلا، يمكنك التفكير في ملفات بيثون 292 00:15:15,520 --> 00:15:19,430 كما يجري أكثر من المراقب المالي، حيث انهم متفاعلين مع كل ما 293 00:15:19,430 --> 00:15:20,970 نموذج بيانات قد تكون لديكم. 294 00:15:20,970 --> 00:15:24,900 >> ومن ثم يدعون إلى المشاهدات وتمرير المعلومات إلى أن مشاهدة 295 00:15:24,900 --> 00:15:28,120 في ملء المعلومات في HTML التي يحتاجها. 296 00:15:28,120 --> 00:15:30,490 وما نسميه تلك المشاهدات هي قوالب في الصف. 297 00:15:30,490 --> 00:15:35,280 >> حتى قارورة يستخدم بيثون أخرى الوحدة النمطية التي فإنه سيتم تلقائيا 298 00:15:35,280 --> 00:15:38,620 تثبيت عند تثبيت برنامج تطبيق السلام دعا قارورة جينجا، التي 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 لذلك، سوف تشغيل المثال قالبي templating. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> حتى إذا ذهبت إلى / مرحبا / عزرا، كان لديه هذا فظيع، 318 00:17:03,660 --> 00:17:05,930 العلامة سرادق البغيضة التي وضعت في. 319 00:17:05,930 --> 00:17:08,050 لطيفة جدا، ودينامية للغاية. 320 00:17:08,050 --> 00:17:09,349 أنا معجب كبير. 321 00:17:09,349 --> 00:17:13,900 ولكن ماذا يحدث إذا اذهب فقط ل، / مرحبا؟ 322 00:17:13,900 --> 00:17:15,220 لذلك يقول عادل مرحبا العالم. 323 00:17:15,220 --> 00:17:17,678 أنا لم يمر عليه اسم، و ملأ في تلقائيا. 324 00:17:17,678 --> 00:17:22,050 لذلك دعونا نرى كيف فعلت ذلك، وكيف يمكننا أن نتخلص من تلك سرادق ربما. 325 00:17:22,050 --> 00:17:26,240 >> حتى هنا، وهذا هو نوع من مثال مثير للاهتمام، 326 00:17:26,240 --> 00:17:29,101 إذا كنت معتادا على كيفية التبديل البيانات تعمل في لغة. 327 00:17:29,101 --> 00:17:31,350 أقول هذا هو نوع من مثل، هذا النوع من السقوط من خلال، 328 00:17:31,350 --> 00:17:34,266 حيث كنت في الواقع تعلق اثنين طرق مختلفة لنفس الوظيفة. 329 00:17:34,266 --> 00:17:41,190 لذلك نحن نعلق / مرحبا الطريق و و/ مرحبا / اسم الطريق إلى مرحبا، 330 00:17:41,190 --> 00:17:45,130 ونحدده نحن using-- بيثون يتيح لك تحديد الافتراضي ظيفة arguments-- 331 00:17:45,130 --> 00:17:48,300 لذلك إذا لم يكن هناك اسم، لذلك إذا ذهبنا إلى مجرد / مرحبا، 332 00:17:48,300 --> 00:17:50,680 سيكون تصفية تلقائيا على سبيل المثال يساوي لا شيء. 333 00:17:50,680 --> 00:17:55,010 >> حتى ذلك الحين، ونحن جعل القالب مع اسم = اسم، 334 00:17:55,010 --> 00:17:59,510 لذلك سوف تمر في المعلمة اسم تساوي هذه الوظيفة اسم المعلمة، 335 00:17:59,510 --> 00:18:00,730 في قالب. 336 00:18:00,730 --> 00:18:04,040 أن لا يفسر كيف هو البت في طباعة مرحبا العالم، 337 00:18:04,040 --> 00:18:05,100 أو طباعة اسمي. 338 00:18:05,100 --> 00:18:08,050 لذلك دعونا ننظر في الواقع في القالب نفسه، 339 00:18:08,050 --> 00:18:11,610 ونرى فيها أن يأتي من بينها. 340 00:18:11,610 --> 00:18:18,680 >> لذلك، في هذا القالب، ونحن فعلا بعض المنطق الشرطي، 341 00:18:18,680 --> 00:18:20,580 وبعض الناس سوف يقول، كنت في الواقع 342 00:18:20,580 --> 00:18:23,730 لا ينبغي أن يكون الكثير من الشرطي منطق ضمن قالب الخاص بك نفسه. 343 00:18:23,730 --> 00:18:26,310 يجب أن يكون أكثر داخل تحكم، ولكن لهذا المثال 344 00:18:26,310 --> 00:18:27,476 انه شيء صغير جدا. 345 00:18:27,476 --> 00:18:31,060 حتى هنا، ونحن تحقق، إذا كان اسم، لذلك إذا كان اسم لا يساوي شيء، 346 00:18:31,060 --> 00:18:33,130 إذا كان اسم هو في الواقع صدر في، ثم نحن 347 00:18:33,130 --> 00:18:36,210 نقول مرحبا، اسم مع رأس وسرادق، 348 00:18:36,210 --> 00:18:41,490 كل هذه HTML عادية، وإلا فإننا سوف طباعة مرحبا، العالم مجرد عادة. 349 00:18:41,490 --> 00:18:45,820 حتى بضعة أشياء لإشعار هنا حول كيفية قمت بتهيئة النموذجيه، 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 الخاصة بك في بيثون الخاص بك، 379 00:20:14,210 --> 00:20:16,640 ولكن الى حد كبير كل تطبيق ويب، 380 00:20:16,640 --> 00:20:21,480 كنت تريد الذهاب الى بعض الفرز من نموذج البيانات المرتبطة بها. 381 00:20:21,480 --> 00:20:25,560 >> وهكذا تقليديا، وهذا من شأنه يكون شيئا مثل قاعدة بيانات SQL. 382 00:20:25,560 --> 00:20:30,280 ويمكنك أن تتفاعل فقط مباشرة مع SQL. 383 00:20:30,280 --> 00:20:32,190 الثعبان له، وأعتقد أنه دعا. 384 00:20:32,190 --> 00:20:33,040 سكليتي 3. 385 00:20:33,040 --> 00:20:38,454 يمكنك فقط استيراد سكليتي 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 >> لذا، فإن مكتب إدارة السجلات التي أحب لاستخدام ما يسمى بيوي. 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 وأنا لا أتذكر لماذا أنا أصلا اختار بيوي على 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 أن تكون على علم، هو أن سوف ORM قصارى جهدها 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 لذلك، هذا هو رمز بيثون، وذلك ل أول شيء تريد القيام به هو من 436 00:23:11,880 --> 00:23:12,950 بيوي استيراد *. 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 أننا سوف نرى لاحقا، من بيوي، يمكنك فقط استيراد كل شيء، 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 التي يمكنك التفاعل مع، مع بيوي. 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 لذا، خلال بيوي، كل فئة لديها الجدول الخاص بها ضمن قاعدة البيانات الخاصة بك. 448 00:23:47,270 --> 00:23:52,800 لذلك، كل من الفئات ترث من نموذج القاعدة، 449 00:23:52,800 --> 00:23:55,960 ونموذج M رأس المال شيء وهذا ما يعرف في بيوي. 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 أنه يحتوي على ID، وهو وPrimaryKeyField، التي 459 00:24:24,080 --> 00:24:26,920 هو الشيء الذي هو المقدمة من peewee، الاسم هو CharField، 460 00:24:26,920 --> 00:24:28,490 والصف هو IntegerField. 461 00:24:28,490 --> 00:24:32,260 ولذلك فإن هذا قد يكون أو لا يكون كيف CS50 يخزن في الواقع كل 462 00:24:32,260 --> 00:24:33,650 درجات الطلاب. 463 00:24:33,650 --> 00:24:36,060 لم يكن، ولكن هذه هي الطريقة التي أود أن تفعل ذلك. 464 00:24:36,060 --> 00:24:37,920 >> ومن ثم كان لديه، ضمن هذه الفئة، وهذا 465 00:24:37,920 --> 00:24:41,620 هو شيء يمكنك القيام به مع بيثون، هل يمكن أن يكون الطبقات المتداخلة. 466 00:24:41,620 --> 00:24:43,920 وهذا شيء ما هو مطلوب من peewee. 467 00:24:43,920 --> 00:24:47,250 لذلك، هذه الفئة ميتا، لديك لتحديد أن قاعدة البيانات 468 00:24:47,250 --> 00:24:49,830 يساوي الكائن أننا إنشاؤها أعلاه. 469 00:24:49,830 --> 00:24:54,339 وهذا يقول ما هو ملف هذا الجدول الذهاب فعلا إلى أن يتضمنها. 470 00:24:54,339 --> 00:24:57,130 لذلك هذا هو الشيء الذي لديك للقيام في جميع النماذج الخاصة بك. 471 00:24:57,130 --> 00:24:59,380 لديك فقط لتحديد ضمن هذه الفئة ميتا 472 00:24:59,380 --> 00:25:01,400 قاعدة البيانات تساوي ديسيبل. 473 00:25:01,400 --> 00:25:03,940 فما أفعل عادة، إذا كان لدي مجموعة من نماذج مختلفة، 474 00:25:03,940 --> 00:25:05,910 غير أن لدي قاعدة واحدة نموذج، التي عادة ما 475 00:25:05,910 --> 00:25:08,839 مجرد دعوة "نموذج القاعدة" الذي يحتوي على الطبقة الفوقية، 476 00:25:08,839 --> 00:25:10,380 ويحدد قاعدة البيانات تساوي ديسيبل. 477 00:25:10,380 --> 00:25:13,710 وبعد ذلك كل من بلدي نماذج لاحقة سيرث من أن الفئة الأساسية. 478 00:25:13,710 --> 00:25:16,760 وبعد ذلك لم يكن لديك ما يدعو للقلق حول إعداد الطبقة ميتا. 479 00:25:16,760 --> 00:25:21,490 >> لذلك، عندما يحصل هذا في الواقع جمعت أسفل إلى بيان SQL، 480 00:25:21,490 --> 00:25:24,875 يبدو مثل هذا الشيء سيئة أسفل هنا، "إنشاء جدول هوية الطالب صحيح، 481 00:25:24,875 --> 00:25:26,020 " ايا كان. 482 00:25:26,020 --> 00:25:30,002 >> وأعتقد أنه أقصر، هذا الاستعلام SQL الحق هنا، 483 00:25:30,002 --> 00:25:32,960 ولكن إذا نظرتم الى هذه الفئة هنا تستطيع أن ترى بالضبط ما يجري. 484 00:25:32,960 --> 00:25:36,116 يمكنك ان ترى ما أنواع الحقول هناك، ما انهم مدعوون، 485 00:25:36,116 --> 00:25:38,115 وهكذا، وأنا أعتقد أن أبحث في هذا الرمز بيثون 486 00:25:38,115 --> 00:25:43,340 هو الكثير أكثر قابلية للقراءة من محاولة لكتابة هذا الاستعلام SQL. 487 00:25:43,340 --> 00:25:45,990 >> لذلك، من أجل الحقيقة استخدام قاعدة البيانات، 488 00:25:45,990 --> 00:25:48,470 لدينا للاتصال به داخل بيثون. 489 00:25:48,470 --> 00:25:52,770 لذلك، وأنا أكتب عادة وظيفة تسمى initialize_db أن يفعل شيئين. 490 00:25:52,770 --> 00:25:54,880 فإنه يأخذ في قاعدة البيانات ديسيبل الكائن و 491 00:25:54,880 --> 00:25:58,360 يتصل به، والذي يفتح فقط وقسم إلى قاعدة البيانات. 492 00:25:58,360 --> 00:26:00,860 إذا كنت مجرد تشغيل على الرغم من موقع على الجهاز المحلي، 493 00:26:00,860 --> 00:26:04,320 أنها ليست صفقة كبيرة عظمى للقلق حول توصيل وفصل، 494 00:26:04,320 --> 00:26:06,885 ولكن إذا كنت تقوم بتشغيل على موقع على شبكة الانترنت، ل 495 00:26:06,885 --> 00:26:10,010 نريد أن نتأكد من أنه كلما مستخدم يتصل به، عندما يغلق 496 00:26:10,010 --> 00:26:12,270 الموقع، وأنها قطع حتى يتسنى لك لم يكن لديك حفنة من الناس متصل 497 00:26:12,270 --> 00:26:14,480 إلى قاعدة البيانات الخاصة بك في كل مرة. 498 00:26:14,480 --> 00:26:16,370 >> وبعد ذلك، عند الاتصال بقاعدة البيانات، 499 00:26:16,370 --> 00:26:20,832 الذي تريد الاتصال به db.create_tables، وسرد نماذج لما تريد 500 00:26:20,832 --> 00:26:21,540 لإنشاء الجداول. 501 00:26:21,540 --> 00:26:23,950 حتى هنا، أريد فقط أن إنشائه لهذا الطالب. 502 00:26:23,950 --> 00:26:28,070 وبعد ذلك، ما هو مهم، هو أن تحديد آمن = صحيح معظم الوقت. 503 00:26:28,070 --> 00:26:30,380 فما هذا البيان لن تفعل، هو أنه 504 00:26:30,380 --> 00:26:33,580 يخلق الجداول ل نموذج الطالب، ولكن فقط 505 00:26:33,580 --> 00:26:36,109 إذا كان هذا الجدول لم يفعل ذلك تم إنشاؤها بالفعل. 506 00:26:36,109 --> 00:26:37,400 هذا ما يحدد آمنة. 507 00:26:37,400 --> 00:26:39,150 لذلك لن الكتابة الجدول الموجودة لديك، 508 00:26:39,150 --> 00:26:41,525 انها سوف تخلق فقط جديدة الجدول إذا لم يكن هناك أحد هناك. 509 00:26:41,525 --> 00:26:45,090 لذلك، يمكنك إنشاء فقط الجداول مرة واحدة باستخدام SQL. 510 00:26:45,090 --> 00:26:49,410 ومن ثم يكون هذا الجلوس قاعدة البيانات هناك، ومن ثم الاتصال في كل مرة، 511 00:26:49,410 --> 00:26:52,450 ولكنها عادة ما تكون لطيفة فقط ل وضعت في هذه الدعوة create_tables، 512 00:26:52,450 --> 00:26:55,550 بحيث، إذا قمت بحذف أي وقت مضى بك عندما قاعدة بيانات تشغيل الويب الخاص بك 513 00:26:55,550 --> 00:26:57,960 التطبيق مرة أخرى، فإنه سيتم إعادة إنشائها. 514 00:26:57,960 --> 00:27:00,730 >> لذلك، فقط للتأكد من أن آمنة يتم تحديد ليكون صحيحا، 515 00:27:00,730 --> 00:27:03,580 أو سوف تجد البيانات الخاصة بك فقط الحصول على مضروب في كل مرة. 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 وهكذا، بدلا من الاضطرار لكتابة إدراج INTO 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 فقط باستخدام بيثون الطبيعي القيم المنطقية للتحقق من الأشياء. 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 ولكن هنا كنت تستخدم علامة الضم واحد، وهو عادة المشغل المختصة بالبت، 563 00:29:23,351 --> 00:29:25,600 ولكن في هذه الحالة الخاصة، مجرد وسيلة للبيوي يفعل ذلك، 564 00:29:25,600 --> 00:29:27,660 استخدام واحد العطف لتحديد "و". 565 00:29:27,660 --> 00:29:29,451 هذا شيء I تختلط كثيرا، 566 00:29:29,451 --> 00:29:32,530 ولكنه لا يأتي أن كثيرا من الناحية العملية. 567 00:29:32,530 --> 00:29:36,350 >> وبعد ذلك، مرة واحدة لديك كل من الطلاب من قاعدة البيانات، 568 00:29:36,350 --> 00:29:39,420 مرة واحدة كنت قد فعلت كنت حدد وارتداء الخاص بك أو أيا كان، 569 00:29:39,420 --> 00:29:42,334 يمكنك استخدام حلقة foreach، تماما مثل العادية في بيثون، 570 00:29:42,334 --> 00:29:44,500 مع أي نوع من مكرر أو مع أي نوع من مجموعة. 571 00:29:44,500 --> 00:29:46,333 حتى تتمكن من القيام، على الصورة في student.select (). عرج 572 00:29:46,333 --> 00:29:52,930 إعادة (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 فقط وكأنك الطبقة العادية في بيثون. 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 على سبيل المثال. 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 وبيوي معا، وجعل التطبيق بسيطة. 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 حيث نقوم به ديسيبل = Sqldatabase ('posts.db'). 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 في الواقع، وربما كنت لا تريد إلى رمز القرص الثابت في قواعد البيانات اسمك. 637 00:33:40,980 --> 00:33:43,730 التي يجب أن تكون على الأرجح معلمة أن يتم تخزينها في مكان ما، ربما 638 00:33:43,730 --> 00:33:45,940 في ملف التكوين، ولكن في مثال صغير مثل هذا، 639 00:33:45,940 --> 00:33:48,310 انه بخير إلى رمز الثابت الذي في. 640 00:33:48,310 --> 00:33:53,510 >> وحتى الآن، لدينا هذه الفئة بوست، الذي يرث من نموذج القاعدة. 641 00:33:53,510 --> 00:33:56,930 وكان لديه، مرة أخرى، ID = PrimaryKeyField. 642 00:33:56,930 --> 00:34:02,250 في الواقع، إذا لم تقم بتحديد، إذا أنا فعلا تخلصوا من هذا، 643 00:34:02,250 --> 00:34:07,152 ثم بيوي سنتخذ رعاية خلق هذا المجال ID تلقائيا، 644 00:34:07,152 --> 00:34:09,360 وسوف تلقائيا جعله أساسي، والتي 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 تلك المجالات المختلفة، إذا كنت النظر في وثائق بيوي، 650 00:34:24,864 --> 00:34:28,920 انها سوف أعطيك قائمة مختلفة أنواع الحقول التي يمكنك استخدامها. 651 00:34:28,920 --> 00:34:34,440 بالنسبة للجزء الأكبر، انها مماثلة لما كنت انظر في SQL. 652 00:34:34,440 --> 00:34:37,699 حتى لا يكون هناك CharField، ل VarCharFields، TextFields، 653 00:34:37,699 --> 00:34:40,550 وهي مدة طويلة جدا النصوص، مثل بلوق وظيفة 654 00:34:40,550 --> 00:34:44,460 يحتمل، DateTimeFields، DoubleFields، FloatFields، 655 00:34:44,460 --> 00:34:46,100 كل شيء من هذا القبيل. 656 00:34:46,100 --> 00:34:51,570 >> ويمكنك تمرير في حجج أخرى لذلك، وهو ما لم يحدد هنا. 657 00:34:51,570 --> 00:34:55,719 يقول، على سبيل المثال، كنت لا تريد ل السماح ظيفتين لديهم نفس العنوان، 658 00:34:55,719 --> 00:34:59,672 هل يمكن تحديد شيء من هذا القبيل فريدة من نوعها = صحيح، 659 00:34:59,672 --> 00:35:02,880 وهذا مجرد معلمة إضافية ل الحقل الذي عندما يجمع عليه 660 00:35:02,880 --> 00:35:06,865 في SQL، فإنه سيتم تحديد أنه يجب أن تكون فريدة من نوعها. 661 00:35:06,865 --> 00:35:09,740 يمكنك أيضا تحديد شيء من هذا القبيل غير فارغة وجميع الأشياء الأخرى 662 00:35:09,740 --> 00:35:11,750 تفعل عادة في SQL. 663 00:35:11,750 --> 00:35:16,020 لذلك، وهذا هو بسيط جدا النموذج الذي لديه تاريخ. 664 00:35:16,020 --> 00:35:19,460 لاحظ هنا، داخل DateTimeField، I المحدد ما هو الافتراضي. 665 00:35:19,460 --> 00:35:22,560 I المحدد لها أن تكون 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، الاختيار مزدوج 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 وهذا ما سيكون الحقل النصي لمجرد أنك تريد 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 >> لذلك، لاحظ والجزء العلوي I المستوردة مجموعة كاملة من الأشياء الأخرى 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 ثم شيء آخر يمكنك القيام به، يمكنك تحديد جملة WHERE، 740 00:39:13,890 --> 00:39:16,910 يمكنك تحديد تأمر من قبل، وحتى نأخذ 741 00:39:16,910 --> 00:39:18,820 جميع الوظائف التي الحصول المحدد، ومن ثم 742 00:39:18,820 --> 00:39:22,590 نحن ترتيبها من قبل post.date.descending. 743 00:39:22,590 --> 00:39:25,030 والتي من شأنها أن تحدد، عند أنها فعلا الخروج، 744 00:39:25,030 --> 00:39:29,250 أحدث واحد سيكون أول واحد. 745 00:39:29,250 --> 00:39:31,420 >> ومن ثم، فإننا تمرير ذلك إلى قالب صفحة home.html، 746 00:39:31,420 --> 00:39:34,240 لذلك دعونا فتح فعليا أن قالب سريع حقا، 747 00:39:34,240 --> 00:39:36,760 ونلقي نظرة على كيف أن تعمل. 748 00:39:36,760 --> 00:39:42,130 وهذه ليست HTML كبيرة، ولكن نأمل، يمكننا أن نركز على بيثون. 749 00:39:42,130 --> 00:39:46,960 >> لذلك هناك وصلة لإضافة الجديد آخر، وهكذا يحدد هذا الطريق 750 00:39:46,960 --> 00:39:51,580 داخل قارورة أننا تعريف، الذي هو حق هنا. 751 00:39:51,580 --> 00:39:56,310 هذا هو آخر الطريق الجديد، ونحن تحديد أن هنا. 752 00:39:56,310 --> 00:40:00,450 وهكذا وهذا هو الرابط الذي سيذهب ثم لهذا الطريق ضمن الملقم قارورة. 753 00:40:00,450 --> 00:40:03,820 >> الشيء أكثر إثارة للاهتمام هذا هو لحلقة هنا. 754 00:40:03,820 --> 00:40:07,685 لذلك نحن تحديد أن هذا المعلمة بعد الذي 755 00:40:07,685 --> 00:40:09,560 صدر في وظيفة render_template، 756 00:40:09,560 --> 00:40:13,550 لكل وظيفة في المنصب الكائن الذي يتم تمرير في. 757 00:40:13,550 --> 00:40:16,600 نحن نريد لطباعة عنوان آخر، في H1، 758 00:40:16,600 --> 00:40:21,930 ثم أدناه، ونحن نريد لطباعة نص آخر ضمن فقرة. 759 00:40:21,930 --> 00:40:25,710 >> وهنا، يمكننا فعلا استدعاء دالة بيثون، 760 00:40:25,710 --> 00:40:35,130 لذلك يمكن أن نطلق STRFTIME، ST-RF-الوقت، ويمكنك تمرير في سلسلة التنسيق 761 00:40:35,130 --> 00:40:37,064 ان كنت ترغب في طباعة البيانات في. 762 00:40:37,064 --> 00:40:39,980 لذلك هو لطيف جدا التي يمكنك في الواقع استدعاء هذه الدالة بيثون 763 00:40:39,980 --> 00:40:41,090 من داخل هنا. 764 00:40:41,090 --> 00:40:44,370 لم يكن لديك للقيام التنسيق على الجانب تحكم، لأن حقا، 765 00:40:44,370 --> 00:40:47,770 تنسيق التاريخ هو الشيء الذي كنت ترغب في التعامل داخل عرض. 766 00:40:47,770 --> 00:40:51,480 >> وجميع هذه بالمئة الأشياء ليست فائقة الأهمية. 767 00:40:51,480 --> 00:40:55,270 إذا قمت بالبحث وثائق لوظيفة STRFTIME في بيثون، 768 00:40:55,270 --> 00:40:57,040 وهي تحدد كل هذه الأشياء، ولكن هذا ل 769 00:40:57,040 --> 00:40:59,190 كيف ومتى كنا نبحث في الصفحة الرئيسية هنا، 770 00:40:59,190 --> 00:41:04,440 ذلك بتنسيق هذا مع لطيفة الآن، وأنها تحدد AM أو PM، 771 00:41:04,440 --> 00:41:09,410 ولكن عادة، إذا نحن لم يكن لديك هذا هنا، 772 00:41:09,410 --> 00:41:14,024 ربما عليك الحصول على بعض القمامة التاريخ الذي لا تبدو جيدة جدا. 773 00:41:14,024 --> 00:41:15,940 وبعد ذلك تحديد post.text، وبوسعي 774 00:41:15,940 --> 00:41:19,460 وضعت بضع خط يكسر هنا، فقط 775 00:41:19,460 --> 00:41:21,820 لوضع بعض الفراغات بين كل وظيفة. 776 00:41:21,820 --> 00:41:26,270 >> لذلك، أعتقد أن أهم شيء في هذا المثال، 777 00:41:26,270 --> 00:41:28,697 هو أنه يمكنك استخدام هذا لحلقة. 778 00:41:28,697 --> 00:41:30,780 وهذا هو مماثل ل الأشياء التي يمكن القيام به في PHP. 779 00:41:30,780 --> 00:41:32,905 يمكنك تكرار خلال، يتم تمرير كل شيء في، 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 أو عن حلقة for، كنت استخدام شريحة في المئة. 789 00:42:02,430 --> 00:42:08,730 >> لذلك، يعود إلى بيثون رمز، بحيث يشرح 790 00:42:08,730 --> 00:42:12,242 ما يحدث في الرئيسية الطريق، وعندما نذهب هناك، 791 00:42:12,242 --> 00:42:14,450 فإنه يعرض فقط كل المشاركات، ولكن بعد السؤال 792 00:42:14,450 --> 00:42:17,440 هو، كيف يمكننا الحصول على الواقع المشاركات في قاعدة البيانات، التي 793 00:42:17,440 --> 00:42:18,970 هو أكثر قليلا للاهتمام. 794 00:42:18,970 --> 00:42:23,960 >> لذلك، عندما تنقر على الجديد آخر الارتباط، الذي رأيناه هنا، 795 00:42:23,960 --> 00:42:26,000 فإنه الموجهات بكم في هذا النموذج. 796 00:42:26,000 --> 00:42:29,580 وهذا مجرد دعوة بسيطة ل وظيفة render_template، الذي ثم 797 00:42:29,580 --> 00:42:32,110 يمر في المنصب الجديد في شكل HTML. 798 00:42:32,110 --> 00:42:36,212 لذلك دعونا نلقي نظرة على ذلك. 799 00:42:36,212 --> 00:42:37,420 لذلك هذا هو واحد بسيط جدا. 800 00:42:37,420 --> 00:42:45,110 أنه يحتوي على شكل HTML بسيطة، والتي سوف تبدو مألوفة قليلا، 801 00:42:45,110 --> 00:42:47,380 استنادا إلى النماذج في CS50 المالية. 802 00:42:47,380 --> 00:42:49,940 وهكذا، فإننا تحديد هنا، والعمل. 803 00:42:49,940 --> 00:42:52,435 وهنا، إذا كنت تعمل مع PHP، عادة، 804 00:42:52,435 --> 00:42:55,930 سيكون شيئا مثل، create.PHP، ولكن هنا 805 00:42:55,930 --> 00:42:59,960 ونحن في الواقع تحديد مسار ضمن الملقم قارورة. 806 00:42:59,960 --> 00:43:02,520 وهكذا، يتوافق هذا الطريق لإنشاء الطريق 807 00:43:02,520 --> 00:43:05,680 أن لدينا هنا، والتي سنذهب إلى في الثانية. 808 00:43:05,680 --> 00:43:07,630 >> وهكذا، فإننا تحديد أن انها الطريقة آخر، 809 00:43:07,630 --> 00:43:09,820 لأننا نريد أن نرسل هذه بيانات النموذج، وعادة 810 00:43:09,820 --> 00:43:12,945 عندما كنت ترسل البيانات من نموذج، قد ترغب في استخدام طلب آخر، 811 00:43:12,945 --> 00:43:15,760 فقط حتى كنت لا ينتهي مع هذا الكبير، URL غير عملي. 812 00:43:15,760 --> 00:43:18,970 ولكن هل يمكن أيضا استخدام طلب 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 >> وبالعودة إلى رمز بيثون، عندما طلبنا إلى خلق طريقة، 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، عندما نحن زيارة هذا عن طريق طلب المشاركة، 835 00:44:38,700 --> 00:44:43,600 كلما ذهبت إلى خاص الطريق، وهناك هذا الكائن الطلب، 836 00:44:43,600 --> 00:44:46,640 وكان علينا أن استيراد طلبات في أعلى جدا، 837 00:44:46,640 --> 00:44:49,640 ولكن هناك هذا الطلب الكائن الذي يتم تمرير في، 838 00:44:49,640 --> 00:44:53,210 ويمكنك الوصول إلى بيانات النموذج، والتي سوف تلقائيا الحصول على شغل 839 00:44:53,210 --> 00:44:55,070 عند إرسال طلب من نموذج. 840 00:44:55,070 --> 00:44:56,990 >> وبعد ذلك، ما أعتقد هو رائع حقا، هو 841 00:44:56,990 --> 00:45:02,840 أن الكائن النموذج للحصول على مر في، هو مجرد القاموس بيثون أن 842 00:45:02,840 --> 00:45:10,560 يحتوي، إذا كنت access-- حتى هنا، اسمحوا لي سحب ما يصل HTML بجانبه، فقط 843 00:45:10,560 --> 00:45:17,670 حتى تتمكن من أن كمرجع، نعم، لذلك 844 00:45:17,670 --> 00:45:21,060 الأسماء التي نحددها هنا للحقول مختلفة، لذلك 845 00:45:21,060 --> 00:45:23,900 العنوان والنص، ونحن ثم مجرد استخدام تلك أكثر من هنا 846 00:45:23,900 --> 00:45:27,110 كما المؤشرات إلى بيانات النموذج. 847 00:45:27,110 --> 00:45:28,950 ولهذا السوبر مريحة. 848 00:45:28,950 --> 00:45:33,320 >> لذلك فإننا ندعو post.create، التي سيتم إنشاء وإدراج تلقائيا 849 00:45:33,320 --> 00:45:36,850 هذا الكائن مشاركة جديدة إلى قاعدة البيانات. 850 00:45:36,850 --> 00:45:40,690 وأعتقد أن هذا خلق وظيفة هنا هو مثال رائع حقا كيف 851 00:45:40,690 --> 00:45:44,900 قوية قارورة و، والعمل مع هذا، لأنه إذا كنت تفعل شيئا 852 00:45:44,900 --> 00:45:48,660 في PHP، قد يكون لديك ل تفعل الكثير من التحقق من صحة، 853 00:45:48,660 --> 00:45:51,730 عملتم لثم تأسيس اتصال قاعدة بيانات، 854 00:45:51,730 --> 00:45:55,210 عملتم لثم تنفيذ الاستعلام SQL، 855 00:45:55,210 --> 00:45:59,550 ولكن هنا علينا فقط أن يكون هذا لطيف post.create، التي نستطيع بعد ذلك فقط 856 00:45:59,550 --> 00:46:01,520 الحصول على المعلومات من من وجوه الطلب، 857 00:46:01,520 --> 00:46:05,370 ومن ثم تمريرها إلى الجديد الرد على أننا بصدد إنشاء. 858 00:46:05,370 --> 00:46:07,850 >> وبعد ذلك، وكان آخر جدا ما نريد القيام به، 859 00:46:07,850 --> 00:46:09,630 هو إعادة توجيه يعود المستخدم إلى المنزل. 860 00:46:09,630 --> 00:46:13,020 وحتى ونحن نستخدم هذا قارورة إعادة توجيه وظيفة. 861 00:46:13,020 --> 00:46:17,770 وشيء أننا لم ير من قبل، كان هذا وظيفة URL. 862 00:46:17,770 --> 00:46:21,970 لذلك URL لوظيفة يتيح يمكنك تمرير في الواقع اسم 863 00:46:21,970 --> 00:46:26,090 وظيفة في التعليمات البرمجية بيثون الخاص بك، بدلا من طريق معين 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 هناك في بيثون. 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 لذلك، فإنه سوف في الواقع مجرد تقديم آخر فارغة وملء في التاريخ والوقت. 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 >> عزرا زيجموند: نأمل، بيوي يفعل ذلك. 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 ولكن أعتقد أن بيوي لا تفعل نوعا من تنقية البيانات 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 ولكن أعتقد أن بيوي نأمل أن تفعل 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 أن بيوي وإخراج، وإذا ويبدو أن الأمور تسير ببطء حقا، 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: هل الافتراضي مع بيوي، أم أن ذلك شيء يمكنك تغيير؟ 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 لديك الكثير من قواعد البيانات سكليتي التي قمت تريد استخدامه لتطبيق ويب واحد، 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 وبيوي أنفسهم. 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 >> بيوي ديه وثائق، و لديهم البرنامج التعليمي التشغيل السريع 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 >> أيضا، إذا كان لديك أسئلة حول بيوي، 1008 00:53:44,690 --> 00:53:47,530 ويمكنك نشرها على ستاكوفيرفلوو، الرجل الذي جعل بيوي الواقع 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