1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:03,227 [संगीत बजाना] 3 00:00:03,227 --> 00:00:04,705 4 00:00:04,705 --> 00:00:05,830 EZRA Zigmond: हाय, सब लोग। 5 00:00:05,830 --> 00:00:08,020 आज बाहर आने के लिए धन्यवाद। 6 00:00:08,020 --> 00:00:10,660 इस संगोष्ठी में "अजगर है वेब कुप्पी के साथ क्षुधा। " 7 00:00:10,660 --> 00:00:14,510 >> तो, मैं बात करने जा रहा हूँ यही कारण है के बारे में थोड़ा 8 00:00:14,510 --> 00:00:17,400 तुम बनाने के लिए फ्लास्क का उपयोग करने के लिए चाहते हो सकता है अजगर के साथ वेब क्षुधा, के रूप में विरोध 9 00:00:17,400 --> 00:00:21,556 वहाँ से बाहर कुछ अन्य व्यवस्थाएं, जैसे करने के लिए सबसे अच्छी तरह से जाना जाता है, जो 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 >> तो, यहाँ सिर्फ एक त्वरित ठहरनेवाला है मैं ऊपर जाने के लिए क्या करना चाहते हैं। 14 00:00:32,390 --> 00:00:35,520 तो, पहले सिर्फ एक स्लाइड कि, Quickstart होने जा रहा है 15 00:00:35,520 --> 00:00:38,530 जो सब कुछ पाने के लिए है आपके कंप्यूटर पर स्थापित की। 16 00:00:38,530 --> 00:00:41,760 मैं प्रदर्शन किया जा रहा हूँ मेरे स्थानीय मैक मशीन पर इस, 17 00:00:41,760 --> 00:00:45,220 कि बस, क्योंकि मैं इस किया है जहां इससे पहले, मैं इसके साथ सबसे आराम कर रहा हूँ 18 00:00:45,220 --> 00:00:48,510 लेकिन यह निश्चित रूप से है CD50 आईडीई पर संभव। 19 00:00:48,510 --> 00:00:52,050 >> तो, उसके बाद, मैं चाहता हूँ , फ्लास्क है क्या परिचय 20 00:00:52,050 --> 00:00:55,089 और आप को समझाने तुम क्यों चाहिए यह पहली जगह में उपयोग करें। 21 00:00:55,089 --> 00:00:56,880 फिर, मैं एक त्वरित दे दूँगा आप क्या का उदाहरण 22 00:00:56,880 --> 00:01:00,550 फ्लास्क, एक त्वरित उदाहरण में कर सकते हैं आप Peewee में क्या कर सकते हैं, 23 00:01:00,550 --> 00:01:05,010 और फिर मैं आपको एक और अधिक दिखाएगा पूरा उदाहरण के आवेदन 24 00:01:05,010 --> 00:01:07,520 मुझे लगता है हम एक साथ डाल दिया है कि एक साथ के माध्यम से चल सकता है। 25 00:01:07,520 --> 00:01:10,040 >> और फिर अंत में पिछले स्लाइड, मेरे पास है 26 00:01:10,040 --> 00:01:12,730 तुम देखो कि कुछ संसाधनों अधिक जानकारी के लिए ऑनलाइन पर। 27 00:01:12,730 --> 00:01:15,560 यह एक पूरा नहीं हुआ है फ्लास्क का उपयोग कैसे करें के ट्यूटोरियल। 28 00:01:15,560 --> 00:01:18,140 और मुझे छोड़ने के लिए आशा करता हूँ प्रश्नों के लिए कुछ समय है। 29 00:01:18,140 --> 00:01:21,050 किसी को भी सिर्फ स्थानीय स्तर पर देख रहा है जैसे, बीच में बाहर चिल्लाओ 30 00:01:21,050 --> 00:01:22,340 अगर आपके कोई प्रश्न होंगे। 31 00:01:22,340 --> 00:01:27,150 >> तो जल्दी स्थापना सामान, आप के साथ पालन करना चाहते हैं, 32 00:01:27,150 --> 00:01:29,240 या आप इस प्राप्त करना चाहते हैं अपनी खुद की मशीन पर, 33 00:01:29,240 --> 00:01:32,440 मैं अजगर 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 >> आप रंज स्थापित कर सकते हैं फ्लास्क, Peewee स्थापित रंज, 41 00:01:54,990 --> 00:01:58,600 आम तौर पर आप सिर्फ sudo चलाने के लिए है इसलिए अनुमतियों बाहर काम करते हैं। 42 00:01:58,600 --> 00:02:01,080 और, यदि आप उपयोग कर रहे हैं एक सुपर अजगर के पुराने संस्करण, 43 00:02:01,080 --> 00:02:05,100 मैं अपने अजगर अद्यतन करने की सिफारिश या EasyInstall का उपयोग कर रंज स्थापित करने के लिए। 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 तो, अगला सवाल है, फ्लास्क क्या है? 46 00:02:11,120 --> 00:02:13,280 और मैं पहली बार एक, लगता है उचित सवाल है, मैं सोच रहा था 47 00:02:13,280 --> 00:02:15,585 एक लंबे समय के लिए, एक वेब अनुप्रयोग क्या है? 48 00:02:15,585 --> 00:02:17,960 एक शब्द है कि ऐसा इसलिए है क्योंकि मैं एक बहुत चारों ओर फेंक दिया जाता है लगता है 49 00:02:17,960 --> 00:02:19,240 मैं वास्तव में नहीं जानता था कि। 50 00:02:19,240 --> 00:02:22,340 और मुझे लगता है कि सबसे अच्छा लगता है एक वेब एप्लिकेशन है क्या का उदाहरण 51 00:02:22,340 --> 00:02:26,960 वास्तव में CS50 वित्त, जहां है यह वास्तव में सिर्फ एक वेबसाइट नहीं है 52 00:02:26,960 --> 00:02:29,320 लेकिन यह कुछ है कि आप प्रकार के साथ बातचीत कर सकता है। 53 00:02:29,320 --> 00:02:31,736 उपयोगकर्ता खाते हैं और विभिन्न चीजों के सभी प्रकार की। 54 00:02:31,736 --> 00:02:35,010 तो, क्या वास्तव में आप जहां आकर्षित एक वेबसाइट क्या है के बीच की रेखा, 55 00:02:35,010 --> 00:02:38,780 और एक वेब एप्लिकेशन, किस तरह का है मनमाने ढंग से है, लेकिन मैं इस विचार लगता है, 56 00:02:38,780 --> 00:02:42,110 यह एक वेबसाइट से अधिक कुछ है और यह एक उपयोगी अनुप्रयोग है। 57 00:02:42,110 --> 00:02:46,081 >> तो, फ्लास्क एक ढांचे के लिए है अजगर का उपयोग वेब क्षुधा बना रही है। 58 00:02:46,081 --> 00:02:48,330 और उम्मीद है, अंत तक इस कारण, मैं तुम्हें मना लेंगे 59 00:02:48,330 --> 00:02:52,210 आप वास्तव में कुछ लिख सकता है CS50 वित्त जैसे अजगर, का उपयोग करते हुए जो मैं 60 00:02:52,210 --> 00:02:53,950 व्यक्तिगत रूप से, पीएचपी की तुलना में बहुत बेहतर पसंद है। 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 मैं पर रूबी के लिए यह तुलना करने के लिए है रेल और 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 >> उदाहरण के लिए, पटरियों पर रूबी के लिए इस सक्रिय रिकॉर्ड प्रणाली है, 79 00:03:41,490 --> 00:03:43,100 जो एक बहुत अच्छी है डेटा के साथ बातचीत करने के लिए जिस तरह से, 80 00:03:43,100 --> 00:03:45,960 लेकिन आप पर रूबी उपयोग करना चाहते हैं रेल, आप की तरह की है कि में बंधे हैं। 81 00:03:45,960 --> 00:03:47,835 लेकिन कुप्पी के साथ, मैं हूँ के रूप में Peewee साथ आप दिखाने के लिए, 82 00:03:47,835 --> 00:03:49,830 आप जो कुछ भी प्रकार का उपयोग कर सकते हैं डेटाबेस की आप चाहते हैं, 83 00:03:49,830 --> 00:03:53,980 और आप बस में है कि खींच सकते हैं फ्लास्क में विस्तार के रूप में। 84 00:03:53,980 --> 00:03:56,350 >> तो यह है कि मैं सच में क्यों है फ्लास्क तरह, यह यह है कि 85 00:03:56,350 --> 00:04:01,170 आप के लिए मान्यताओं में नहीं पड़ता चीजों के आधार पर आप वास्तव में जरूरत नहीं है। 86 00:04:01,170 --> 00:04:04,440 >> तो, तुम क्यों फ्लास्क का उपयोग करना चाहिए? 87 00:04:04,440 --> 00:04:08,230 फायदे यह सिर्फ कर रहे हैं वास्तव में मूल सुविधाओं है 88 00:04:08,230 --> 00:04:09,420 इसे बनाया है कि आप जरूरत। 89 00:04:09,420 --> 00:04:11,980 तो, आप के बारे में चिंता करने की जरूरत नहीं है चीजों की एक पूरी गुच्छा समझने 90 00:04:11,980 --> 00:04:13,175 आप वास्तव में जरूरत नहीं है। 91 00:04:13,175 --> 00:04:15,060 आप चिंता करने की ज़रूरत नहीं है सुविधाओं को बंद के बारे में 92 00:04:15,060 --> 00:04:16,620 आप वास्तव में जरूरत नहीं है। 93 00:04:16,620 --> 00:04:21,082 >> मैंने उल्लेख किया है और, जैसा कि यह सुपर है बातों का एक्सटेंशन में जोड़ने के लिए आसान 94 00:04:21,082 --> 00:04:21,790 आप की जरूरत है कि। 95 00:04:21,790 --> 00:04:24,700 उनमें से कुछ, फ्लास्क है इसके लिए अपने स्वयं के समर्थन करते हैं। 96 00:04:24,700 --> 00:04:28,230 तो फ्लास्क बुलाया कुछ भी नहीं है कि व्यवस्थापक दर्पण जो व्यवस्थापक, 97 00:04:28,230 --> 00:04:32,060 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 आप शायद एक बड़ा व्यवस्थापक की जरूरत नहीं पैनल, इसलिए मुझे लगता है कि सुपर अच्छा लगता है। 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 Django की तुलना में। 112 00:05:13,191 --> 00:05:16,380 तो, आप की तरह कुछ देखो, Django में "मैं कैसे एक्स करते हैं", 113 00:05:16,380 --> 00:05:18,190 आप शायद यह पता चल जाएगा। 114 00:05:18,190 --> 00:05:20,260 >> अच्छे डिजाइन नहीं है आप उपयोग कर सकते हैं पैटर्न, 115 00:05:20,260 --> 00:05:22,660 लेकिन कुप्पी के साथ, यह है एक तरह से अपने अपने तरीके से चलते हैं, 116 00:05:22,660 --> 00:05:24,850 इसे सिर्फ एक है, क्योंकि बहुत छोटा सा पुस्तकालय। 117 00:05:24,850 --> 00:05:27,100 तो उन लोगों के हैं नुकसान है, लेकिन मुझे लगता है कि 118 00:05:27,100 --> 00:05:29,370 कि यह अभी भी उपयोग करने के लिए एक अच्छा पुस्तकालय है। 119 00:05:29,370 --> 00:05:31,909 >> तो चलो बस सही कुप्पी में कूद जाने। 120 00:05:31,909 --> 00:05:34,200 यह निश्चित रूप से नहीं जा रहा है एक पूरा ट्यूटोरियल हो सकता है, 121 00:05:34,200 --> 00:05:37,480 लेकिन इसे आप एक विचार देने के लिए है बातें संरचना करने के लिए कैसे की, 122 00:05:37,480 --> 00:05:40,790 और इसलिए आप जा सहज महसूस करते हैं बंद और प्रलेखन पर देख रहे हैं 123 00:05:40,790 --> 00:05:42,570 और अधिक जानने। 124 00:05:42,570 --> 00:05:48,500 >> तो, मुझे एक सच को खोलने दें पहली बार में सरल उदाहरण है, 125 00:05:48,500 --> 00:05:50,737 और आप क्या पता चलता है कि की तरह लग रहा है, और फिर हम करेंगे 126 00:05:50,737 --> 00:05:52,070 एक छोटा सा और इसे तोड़ने के नीचे। 127 00:05:52,070 --> 00:05:56,160 >> तो यह यहाँ, मुझे यह चल मिलता है। 128 00:05:56,160 --> 00:06:06,800 129 00:06:06,800 --> 00:06:09,750 तो, अब मैं अपने आवेदन चल रहा है। 130 00:06:09,750 --> 00:06:15,910 मैं सफारी को खोलने के लिए जा रहा हूँ, और यह मेरे स्थानीय होस्ट पर चल रहा है। 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 >> तो पहली पंक्ति कुप्पी से, है, हम एक पूंजी के साथ, फ्लास्क आयात "एफ" 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 एक app वस्तु बनाने के लिए, और आप कर रहे हैं करने के लिए हमेशा कि क्या करना चाहते करने जा रहा है। 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 >> तो अगर आप हैलो / लोकलहोस्ट करने के लिए जाना है, यह अब कुछ और प्रिंट होगा। 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 एक 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 >> तो जब आप कुछ प्रयोग कर रहे पीएचपी की तरह, इस विचार है 232 00:11:56,640 --> 00:11:58,920 आप पास कर सकते हैं कि वेब पृष्ठों के बीच जानकारी 233 00:11:58,920 --> 00:12:03,620 वास्तव में जानकारी डालने से एक अनुरोध प्राप्त है, जो यूआरएल, में, 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 तो यह स्वचालित रूप से इसे बदलना होगा एक पूर्णांक के लिए, और फिर, पूर्णांक दोगुना 264 00:13:44,690 --> 00:13:46,150 और कहा कि प्रिंट आउट। 265 00:13:46,150 --> 00:13:48,220 और, हम किसी भी तरह से नहीं करते यह भीतर रूपांतरण की 266 00:13:48,220 --> 00:13:49,594 फ्लास्क इस बात का ख्याल रखता है। 267 00:13:49,594 --> 00:13:53,181 तो चलो इस चल मिलता है। 268 00:13:53,181 --> 00:13:54,930 आप एक कुप्पी है जब आवेदन चल रहा है, 269 00:13:54,930 --> 00:13:58,440 आप इसे से बाहर-सी नियंत्रित कर सकते हैं सर्वर चल रहा रोकने के लिए। 270 00:13:58,440 --> 00:14:02,420 और फिर मैं चर चलेंगे। 271 00:14:02,420 --> 00:14:11,740 >> तो चलो लोकलहोस्ट / नमस्ते / एजरा के लिए चलते हैं और उम्मीद है, यह मेरे लिए हैलो कहना होगा। 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 >> हम वास्तव में लौट सकता है शाब्दिक एचटीएमएल स्ट्रिंग। 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 एचटीएमएल कोड लिख सकता है अपने अजगर कोड में। 287 00:14:58,420 --> 00:15:01,940 यह वास्तव में गंदा हो जाता है और यह एक अच्छा समय नहीं है। 288 00:15:01,940 --> 00:15:06,430 >> फ्लास्क हमें बाहर अलग करने के लिए अनुमति देता है खाका क्या कहा जाता है में एचटीएमएल, 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 जानकारी में भरने के लिए एचटीएमएल में यह जरूरत है। 296 00:15:28,120 --> 00:15:30,490 और हम उन विचारों क्या कॉल कक्षा में टेम्पलेट्स हैं। 297 00:15:30,490 --> 00:15:35,280 >> तो फ्लास्क एक और अजगर का उपयोग करता है मॉड्यूल है कि यह स्वचालित रूप से होगा 298 00:15:35,280 --> 00:15:38,620 आप को स्थापित करने रंज जब स्थापित फ्लास्क Jinja कहा जाता है, जो 299 00:15:38,620 --> 00:15:40,885 आप इन जोड़ देता है HTML करने के लिए एनोटेशन 300 00:15:40,885 --> 00:15:45,140 आप स्क्रीन पर देखते हैं कि, कि देता है आप सशर्त तरह बातों में डाल 301 00:15:45,140 --> 00:15:47,230 और एचटीएमएल में छोरों। 302 00:15:47,230 --> 00:15:51,140 >> तो यह तुम कैसे की तरह थोड़ा सा लग रहा है एक HTML फ़ाइल के भीतर पीएचपी उपयोग हो सकता है, 303 00:15:51,140 --> 00:15:57,380 लेकिन यह सिर्फ जब फ्लास्क है सर्वर, एचटीएमएल फ़ाइल में कार्य करता है 304 00:15:57,380 --> 00:16:01,610 यह इस templating इंजन चलेंगे और इस के माध्यम से पार्स और में चीजों को भरने के लिए। 305 00:16:01,610 --> 00:16:06,650 तो फ्लास्क एक render_template कार्य किया है आप यहाँ तल पर देख सकते हैं। 306 00:16:06,650 --> 00:16:14,300 और तो आप इसे इस पृष्ठ पर जाएँ जब इस hello.html खाका प्रस्तुत करना होगा, 307 00:16:14,300 --> 00:16:16,407 और फिर इस HTML पृष्ठ में भरें। 308 00:16:16,407 --> 00:16:18,990 तो चलो बस यह असली चलाते हैं जल्दी है, और यह कैसा लग रहा है, 309 00:16:18,990 --> 00:16:21,198 और फिर मैं एक माध्यम से जाना होगा और अधिक विस्तार में थोड़ा सा। 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 तो, अपने टेम्पलेट्स जा रहे हैं एक टेम्पलेट फ़ोल्डर में जाने के लिए। 312 00:16:30,260 --> 00:16:33,980 यह स्वचालित रूप से भीतर दिखेगा टेम्पलेट्स कि खाका के लिए फ़ोल्डर। 313 00:16:33,980 --> 00:16:35,615 तो चलो इस को खोलते हैं। 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 तो, मैं Templating उदाहरण चलने देंगे। 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> इसलिए मैं / नमस्ते / एजरा के लिए जाना है, यह इस भयानक है, 318 00:17:03,660 --> 00:17:05,930 मैं में डाल दिया है कि अप्रिय मार्की टैग। 319 00:17:05,930 --> 00:17:08,050 बहुत अच्छा, बहुत गतिशील। 320 00:17:08,050 --> 00:17:09,349 मै तुम्हारा बड़ा प्रशंसक हूँ। 321 00:17:09,349 --> 00:17:13,900 लेकिन क्या होता है अगर मैं तो बस, / नमस्ते करने के लिए जाना है? 322 00:17:13,900 --> 00:17:15,220 तो यह सिर्फ नमस्ते विश्व कहते हैं। 323 00:17:15,220 --> 00:17:17,678 मैं इसे एक नाम पारित नहीं किया, और यह स्वचालित रूप से उस में भर दिया। 324 00:17:17,678 --> 00:17:22,050 तो यह है कि कैसे किया चलो देखते हैं, और कैसे हम हो सकता है कि मार्की से छुटकारा मिल सकता है। 325 00:17:22,050 --> 00:17:26,240 >> यहाँ तो, इस तरह की है का एक दिलचस्प उदाहरण है, 326 00:17:26,240 --> 00:17:29,101 आप कैसे स्विच के साथ परिचित हैं बयान एक भाषा में काम करते हैं। 327 00:17:29,101 --> 00:17:31,350 , इस तरह की तरह है कहो के माध्यम से एक गिरावट की है कि तरह, 328 00:17:31,350 --> 00:17:34,266 जहां आप वास्तव में दो संलग्न एक ही समारोह के लिए विभिन्न मार्गों। 329 00:17:34,266 --> 00:17:41,190 इसलिए हम / हैलो मार्ग देते हैं और नमस्ते करने के लिए / नमस्ते / नाम मार्ग, 330 00:17:41,190 --> 00:17:45,130 अजगर की मदद से आप using-- और हम निर्दिष्ट डिफ़ॉल्ट समारोह arguments-- निर्दिष्ट 331 00:17:45,130 --> 00:17:48,300 तो कोई नाम है, ताकि अगर वहाँ हम करने के लिए जाना है, तो बस / हैलो, 332 00:17:48,300 --> 00:17:50,680 यह स्वचालित रूप से फिल्टर होगा नाम करने के लिए कोई नहीं के बराबर है। 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 तो एक दो बातें यहाँ करने के लिए नोटिस आप templating कैसे प्रारूप के बारे में, 350 00:18:45,820 --> 00:18:49,110 इनमें से, वह सब है सशर्त बयान, 351 00:18:49,110 --> 00:18:54,475 की तरह की तरह हम इसे जब पीएचपी कैसे आप कुछ पीएचपी सम्मिलित करना चाहते हैं, 352 00:18:54,475 --> 00:18:58,380 आपको कम-से अधिक का उपयोग सवाल मार्क, यह यहाँ की तरह अनुरूप है 353 00:18:58,380 --> 00:19:00,140 उसके साथ {%। 354 00:19:00,140 --> 00:19:02,130 >> यहाँ तो, हम हमारे सशर्त कोड है। 355 00:19:02,130 --> 00:19:05,920 और फिर, आप वास्तव में चाहते हैं जब सचमुच कुछ का मूल्यांकन, और प्रिंट 356 00:19:05,920 --> 00:19:08,710 स्क्रीन करने के लिए इसे बाहर, आप डबल तार लगवाने का उपयोग करें। 357 00:19:08,710 --> 00:19:12,310 यहाँ तो डबल ब्रेसिज़ हैं, और फिर हम नाम निर्दिष्ट करें, 358 00:19:12,310 --> 00:19:15,500 कि भीतर हां, तो यह मूल्यांकन करेंगे चर नाम, जो 359 00:19:15,500 --> 00:19:18,860 से में पारित किया गया था , टेम्पलेट समारोह प्रस्तुत करना 360 00:19:18,860 --> 00:19:21,484 बल्कि सिर्फ मुद्रण से बाहर है, हम इनमें से छुटकारा मिल गया है, तो 361 00:19:21,484 --> 00:19:23,150 यह सिर्फ शब्द बाहर प्रिंट होगा "नाम।" 362 00:19:23,150 --> 00:19:26,340 तो, उस के लिए बाहर देखने के लिए कुछ है। 363 00:19:26,340 --> 00:19:29,792 >> तो एक और बात करने के लिए सूचना है जब हम, कि 364 00:19:29,792 --> 00:19:31,500 उपयोग करना चाहते हैं render_template समारोह, 365 00:19:31,500 --> 00:19:34,490 हम वास्तव में आयात करने के लिए है यह स्पष्ट रूप से कुप्पी से। 366 00:19:34,490 --> 00:19:36,915 और इस का एक उदाहरण है कुप्पी की प्रतिरूपकता, 367 00:19:36,915 --> 00:19:39,290 आप आयात करने की जरूरत नहीं है कि आप की जरूरत नहीं है कि चीजों। 368 00:19:39,290 --> 00:19:41,290 तुम बस में ला सकता है कार्यों वास्तव में आप 369 00:19:41,290 --> 00:19:43,450 कभी कभी होता है, जो की ज़रूरत है अच्छा, तो तुम नहीं करते 370 00:19:43,450 --> 00:19:46,560 इन सभी कार्यों के लिए है आप का उपयोग नहीं कर रहे हैं कि चारों ओर बैठे, 371 00:19:46,560 --> 00:19:49,730 लेकिन इसके अलावा, आप भूल जाते हैं कि यदि render_template आयात करने की जरूरत है, 372 00:19:49,730 --> 00:19:52,660 आप शायद एक चेतावनी मिल जाएगा कि आप इस बारे में पता चल जाएगा। 373 00:19:52,660 --> 00:19:56,700 तो, कि templating है। 374 00:19:56,700 --> 00:20:01,680 >> तो, हम कैसे करने के लिए दिखाया गया है, सरल, वेब पृष्ठों को बनाने के 375 00:20:01,680 --> 00:20:04,947 और करने के लिए एक छोटा सा और तर्क जोड़ने यह चर मार्ग के संदर्भ में। 376 00:20:04,947 --> 00:20:08,280 यह आप पर आधारित अलग अलग बातें कर देता है क्या आप फिर भी करने के लिए जाना है, और यूआरएल, देना 377 00:20:08,280 --> 00:20:11,950 में एचटीएमएल एक छोटा सा और भावना आप चीजों को प्रस्तुत करना चाहते हैं कैसे के मामले। 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 >> और तो परंपरागत रूप से, यह होगा एक एसक्यूएल डाटाबेस ऐसा कुछ हो। 382 00:20:25,560 --> 00:20:30,280 और तुम सिर्फ बातचीत कर सकते हैं सीधे एसक्यूएल के साथ। 383 00:20:30,280 --> 00:20:32,190 अजगर है, मैं यह कहा जाता है लगता है। 384 00:20:32,190 --> 00:20:33,040 SQLite 3। 385 00:20:33,040 --> 00:20:38,454 तुम बस SQLite 3 आयात कर सकते हैं और सीधे एसक्यूएल प्रश्नों पर अमल, 386 00:20:38,454 --> 00:20:40,870 लेकिन मैं तुम्हारे बारे में पता नहीं है, लेकिन मैं वास्तव में, बस पसंद नहीं है 387 00:20:40,870 --> 00:20:42,750 एसक्यूएल प्रश्नों बाहर लेखन। 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 >> उदाहरण तो यह है कि प्रोफेसर मालन आमतौर पर 394 00:21:03,240 --> 00:21:07,660 कक्षा में उपयोग करता है, Excel तालिका, जहां है आप इन पंक्तियों और इन कॉलम है, 395 00:21:07,660 --> 00:21:10,210 और उस के लिए वास्तव में उपयोगी है यह एसक्यूएल में प्रतिनिधित्व किया है कि कैसे 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 यह एक तरह की कुप्पी की तरह, वास्तव में छोटा है। 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 खत्म Peewee चुना 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 बजाय सिर्फ सीधे की एसक्यूएल प्रश्नों लिख? 414 00:22:07,552 --> 00:22:09,760 और मैं सबसे अच्छा मामले में लगता है, आप वास्तव में नहीं है 415 00:22:09,760 --> 00:22:11,356 एसक्यूएल प्रश्नों लिखना है। 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 यह पता लगाने के लिए क्या सबसे कुशल एसक्यूएल क्वेरी, होगा 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 और तुम कैसे पर हुड के नीचे देखने के लिए अगर ORM, एसक्यूएल में है कि व्याख्या है 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 बस, मेरे अपने एसक्यूएल प्रश्नों पर अमल यह एक अजीब तरह से पार्स था। 431 00:22:52,429 --> 00:22:54,220 तो, वहाँ कुछ बस रास्ते में, भूमि के ऊपर 432 00:22:54,220 --> 00:22:58,680 यह संकलित है कि अपने एसक्यूएल में नीचे बयान। 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 तो, फ्लास्क, के विपरीत है जहां आप इन सभी अलग-अलग मॉड्यूल, 438 00:23:15,850 --> 00:23:18,125 और आप फ्लास्क आयात करना चाहते हैं, और एक खाका है, और कुछ दूसरों को लिखना 439 00:23:18,125 --> 00:23:20,690 हम बाद में देखेंगे कि, Peewee से, आप बस, सब कुछ आयात कर सकते हैं 440 00:23:20,690 --> 00:23:22,290 क्योंकि यह एक बहुत छोटा सा पुस्तकालय है। 441 00:23:22,290 --> 00:23:26,490 >> तो, आप क्या करना चाहते पहली बात यह है, वास्तव में इस डेटाबेस वस्तु बना। 442 00:23:26,490 --> 00:23:31,212 तो, तुम्हारे पास DB = SqliteDatabase, और फिर अपने डेटाबेस का नाम। 443 00:23:31,212 --> 00:23:33,170 और यह वास्तव में होगा एक डेटाबेस वस्तु बना 444 00:23:33,170 --> 00:23:36,230 आप Peewee के साथ, के साथ बातचीत कर सकते हैं। 445 00:23:36,230 --> 00:23:40,570 >> और फिर, हम वास्तविक है हम बनाना चाहते हैं कि मॉडल। 446 00:23:40,570 --> 00:23:42,470 तो मेज हम बनाना चाहते हैं। 447 00:23:42,470 --> 00:23:47,270 तो, Peewee के भीतर प्रत्येक वर्ग है अपने डेटाबेस के भीतर अपनी मेज। 448 00:23:47,270 --> 00:23:52,800 तो, कक्षाओं के सभी बेस मॉडल से विरासत, 449 00:23:52,800 --> 00:23:55,960 और राजधानी एम मॉडल है Peewee में परिभाषित किया गया है कि कुछ और। 450 00:23:55,960 --> 00:24:02,162 >> तो, अपने मॉडल के सभी चाहिए अपने उच्चतम सुपर क्लास के रूप में वारिस, 451 00:24:02,162 --> 00:24:04,620 वे से वारिस चाहिए मॉडल है, लेकिन वास्तव में अच्छा है क्या, 452 00:24:04,620 --> 00:24:07,610 आप वास्तव में अपने हो सकता है मॉडल एक दूसरे से वारिस। 453 00:24:07,610 --> 00:24:10,530 और समय की एक बहुत कुछ है, अपने डेटा मॉडल जरूरी नहीं है 454 00:24:10,530 --> 00:24:13,754 एक अच्छी विरासत पदानुक्रम बना है, लेकिन वे करते हैं, जहां बार, यह वास्तव में अच्छा है 455 00:24:13,754 --> 00:24:15,920 आप मॉडल है, क्योंकि एक दूसरे से निहित। 456 00:24:15,920 --> 00:24:19,710 >> तो, हम इस वर्ग में परिभाषित एक मॉडल विरासत में मिली है, जो 'छात्र', 457 00:24:19,710 --> 00:24:21,170 और यह तीन गुण है। 458 00:24:21,170 --> 00:24:24,080 ऐसा नहीं है, जो एक आईडी है एक PrimaryKeyField, जो 459 00:24:24,080 --> 00:24:26,920 प्रदान की है कि कुछ तो है Peewee द्वारा, नाम एक CharField है, 460 00:24:26,920 --> 00:24:28,490 और एक ग्रेड एक IntegerField है। 461 00:24:28,490 --> 00:24:32,260 इसलिए इस या नहीं हो सकता है कैसे CS50 वास्तव में सभी भंडार 462 00:24:32,260 --> 00:24:33,650 छात्रों के ग्रेड। 463 00:24:33,650 --> 00:24:36,060 ऐसा भी नहीं है, लेकिन यह है कि मैं इसे कैसे करना है। 464 00:24:36,060 --> 00:24:37,920 >> और फिर यह भीतर है, इस वर्ग के लिए, और इस 465 00:24:37,920 --> 00:24:41,620 आप के साथ कुछ कर सकता है अजगर, आप नेस्टेड कक्षाएं हो सकता है। 466 00:24:41,620 --> 00:24:43,920 और यह कुछ है कि Peewee के लिए आवश्यक है। 467 00:24:43,920 --> 00:24:47,250 तो, इस वर्ग के मेटा, आपके पास डेटाबेस है कि निर्दिष्ट करने के लिए 468 00:24:47,250 --> 00:24:49,830 वस्तु के बराबर हम ऊपर बनाए गए। 469 00:24:49,830 --> 00:24:54,339 और इस फाइल को इस तालिका में क्या कहना है वास्तव में समाहित किया जा रहा है। 470 00:24:54,339 --> 00:24:57,130 तो यह है कि आप कुछ है अपने मॉडल के सभी के भीतर करने के लिए। 471 00:24:57,130 --> 00:24:59,380 तुम बस निर्दिष्ट करने के लिए इस मेटा वर्ग के भीतर 472 00:24:59,380 --> 00:25:01,400 कि डेटाबेस DB के बराबर है। 473 00:25:01,400 --> 00:25:03,940 मैं तो अगर मैं आमतौर पर क्या करते हैं विभिन्न मॉडलों की एक गुच्छा, 474 00:25:03,940 --> 00:25:05,910 मैं एक आधार यह है कि मॉडल, मुझे लगता है कि आम तौर पर 475 00:25:05,910 --> 00:25:08,839 बस "बेस मॉडल 'कहते हैं कि मेटा वर्ग है, 476 00:25:08,839 --> 00:25:10,380 और यह DB के बराबर डेटाबेस सेट। 477 00:25:10,380 --> 00:25:13,710 और मेरे बाद के मॉडलों में से तो सभी कि आधार वर्ग से वारिस होगा। 478 00:25:13,710 --> 00:25:16,760 और फिर मुझे चिंता करने की जरूरत नहीं है मेटा वर्ग की स्थापना के बारे में। 479 00:25:16,760 --> 00:25:21,490 >> तो, यह वास्तव में हो जाता है जब एक एसक्यूएल बयान में नीचे संकलित, 480 00:25:21,490 --> 00:25:24,875 यह नीचे यह गंदा बात की तरह लग रहा है यहाँ, ", टेबल छात्र आईडी पूर्णांक बनाएं 481 00:25:24,875 --> 00:25:26,020 " जो कुछ। 482 00:25:26,020 --> 00:25:30,002 >> और, मैं यह छोटा लगता है कि, यहीं इस एसक्यूएल क्वेरी, 483 00:25:30,002 --> 00:25:32,960 लेकिन तुम यहाँ इस वर्ग पर नजर डालें तो आप पर हो रहा है कि क्या वास्तव में देख सकते हैं। 484 00:25:32,960 --> 00:25:36,116 तुम क्षेत्रों की किस प्रकार देख सकते हैं वे कहते हैं, क्या कर रहे हैं, देखते हैं, 485 00:25:36,116 --> 00:25:38,115 और हां, तो मुझे लगता है कि इस अजगर कोड को देख 486 00:25:38,115 --> 00:25:43,340 की तुलना में बहुत अधिक पठनीय है इस एसक्यूएल क्वेरी लिखने के लिए कोशिश कर रहा। 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 यह डेटाबेस में ले जाता है वस्तु 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 और फिर, क्या महत्वपूर्ण है, के लिए है सुरक्षित = सच है सबसे अधिक समय निर्दिष्ट करें। 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 तो, अगर आप अभी बना सकते हैं टेबल एक बार एसक्यूएल का उपयोग कर। 510 00:26:45,090 --> 00:26:49,410 और फिर उस डेटाबेस बैठे वहाँ, और फिर हर बार से कनेक्ट, 511 00:26:49,410 --> 00:26:52,450 लेकिन यह सिर्फ करने के लिए आमतौर पर अच्छा है इस create_tables कॉल में डाल दिया है, 512 00:26:52,450 --> 00:26:55,550 इसलिए, कि आप कभी भी हटाते हैं, तो आपके डेटाबेस जब आप अपने वेब चलाने 513 00:26:55,550 --> 00:26:57,960 एप्लिकेशन फिर, यह है कि यह विश्राम करेंगे। 514 00:26:57,960 --> 00:27:00,730 >> तो, सिर्फ सुरक्षित सुनिश्चित करें कि यह सच होने के लिए निर्दिष्ट किया जाता है, 515 00:27:00,730 --> 00:27:03,580 या तुम सिर्फ अपने डेटा मिलेगा हर बार clobbered हो रही है। 516 00:27:03,580 --> 00:27:06,380 और फिर, आप बस फोन कर सकते हैं स्थापित करने के लिए initialize_db 517 00:27:06,380 --> 00:27:09,820 एक कनेक्शन है, और बनाने टेबल यदि आवश्यक है। 518 00:27:09,820 --> 00:27:13,150 >> तो, सबसे आम बात आप क्या करना चाहते हो जाएगा कि, 519 00:27:13,150 --> 00:27:15,920 या सबसे आम बातों में से एक, वास्तव में चीजों को डालने के लिए है 520 00:27:15,920 --> 00:27:17,170 अपने डेटाबेस में। 521 00:27:17,170 --> 00:27:19,430 और हां, तो बजाय होने में एक डालने लिखने के लिए 522 00:27:19,430 --> 00:27:21,990 सब के साथ बयान मान निर्दिष्ट, 523 00:27:21,990 --> 00:27:24,650 आप वास्तव में कॉल कर सकते हैं छात्र वर्ग पर कार्य करते हैं। 524 00:27:24,650 --> 00:27:28,200 तो, अगर आप एक वर्ग जब बनाने कि, मॉडल से विरासत में मिली 525 00:27:28,200 --> 00:27:30,200 यह इस विधि बनाने की है। 526 00:27:30,200 --> 00:27:33,870 >> तो, अगर आप वर्ग name.create करते हैं, और आप पैरामीटर 527 00:27:33,870 --> 00:27:35,260 आप में पारित करने के लिए चाहते हैं। 528 00:27:35,260 --> 00:27:39,200 तो, मैं कुछ छात्रों को जोड़ना चाहते हैं हमारे CS50 ग्रेड किताब उदाहरण के लिए, 529 00:27:39,200 --> 00:27:41,820 मैं जो एक है, डेविड में डाल देता हूँ बहुत अच्छा ग्रेड, वह एक 95 है। 530 00:27:41,820 --> 00:27:45,100 और अपने आप को, कौन नहीं कर रहा है इतनी अच्छी तरह से CS50 में, मैं एक 50 है। 531 00:27:45,100 --> 00:27:47,600 और हां, तो अच्छी बात के बारे में इस बनाने के समारोह में क्या करता है, 532 00:27:47,600 --> 00:27:53,040 यह उदाहरण देता है, या यह है कि पंक्ति, यह तालिका के अंदर बनाए गए, 533 00:27:53,040 --> 00:27:55,750 और यदि ऐसा है तो आप एक में है कि दुकान चर, और बाद में इसके साथ काम करते हैं। 534 00:27:55,750 --> 00:27:58,830 तुम्हें पता है, चारों ओर बदल सकते हैं जो मैं का एक उदाहरण दिखाता हूँ। 535 00:27:58,830 --> 00:28:03,050 >> मैं नहीं था कि नोटिस आईडी निर्दिष्ट करने के लिए, 536 00:28:03,050 --> 00:28:09,340 यह है के बाद से, क्योंकि PrimaryKeyField, यह स्वतः ही होगा 537 00:28:09,340 --> 00:28:10,930 आप यह निर्दिष्ट नहीं करते हैं तो यह वेतन वृद्धि। 538 00:28:10,930 --> 00:28:12,250 और, वास्तव में, आप शायद यह निर्दिष्ट नहीं किया जाना चाहिए, 539 00:28:12,250 --> 00:28:14,810 अगर आप गलती से हो सकता है क्योंकि किसी और की आईडी पीटना। 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 कैसे आप श्रृंखला होगा जैसे एसक्यूएल में एक साथ बयान। 553 00:28:48,830 --> 00:28:53,002 तो अगर आप) (student.select कर सकते हैं। जहां इस उदाहरण में। 554 00:28:53,002 --> 00:28:54,710 और फिर, आप कर सकते हैं , शर्तों को निर्दिष्ट 555 00:28:54,710 --> 00:28:57,880 सिर्फ सामान्य अजगर का उपयोग Booleans चीजों की जांच की। 556 00:28:57,880 --> 00:29:02,110 >> इसलिए, इस मामले में, आप करना चाहते हैं आप के लिए चयन कर रहे सीमा क्या 557 00:29:02,110 --> 00:29:06,790 student.grade 50 के बराबर है, जहां और student.name, एजरा के बराबर है 558 00:29:06,790 --> 00:29:09,130 तो यह है कि अभी इसके बारे में मुझे बाहर निकल जाएगा। 559 00:29:09,130 --> 00:29:11,340 और वास्तव में, एक को नोटिस सूक्ष्म बात यहाँ है 560 00:29:11,340 --> 00:29:15,570 आप निर्दिष्ट करना चाहते हैं, कि एक और / या एक या / या, 561 00:29:15,570 --> 00:29:19,840 अजगर में, आप सामान्य रूप से उपयोग होता है, मैं शब्द "और" वास्तव में लगता है 562 00:29:19,840 --> 00:29:23,351 लेकिन यहाँ आप एक एम्परसेंड उपयोग करते हैं, जो सामान्य रूप से एक बिटवाइस ऑपरेटर है, 563 00:29:23,351 --> 00:29:25,600 लेकिन इस विशेष मामले में, अभी जिस तरह से Peewee यह करता है, 564 00:29:25,600 --> 00:29:27,660 अगर आप सिंगल उपयोग एम्परसेंड निर्दिष्ट "और है।" 565 00:29:27,660 --> 00:29:29,451 यही कारण है कि कुछ है कि मैं एक बहुत मिश्रित मिल, 566 00:29:29,451 --> 00:29:32,530 लेकिन यह नहीं आती व्यवहार में है कि अधिक। 567 00:29:32,530 --> 00:29:36,350 >> और फिर, एक बार आप सभी का है डेटाबेस से बाहर छात्रों, 568 00:29:36,350 --> 00:29:39,420 तुमने क्या किया है एक बार आप का चयन कर रहे हैं और अपने पहनते हैं या जो भी, 569 00:29:39,420 --> 00:29:42,334 आप एक foreach पाश का उपयोग कर सकते हैं, बस, पायथन में सामान्य की तरह 570 00:29:42,334 --> 00:29:44,500 इटरेटर के किसी भी प्रकार के साथ या सरणी के किसी भी प्रकार के साथ। 571 00:29:44,500 --> 00:29:46,333 तो अगर आप एस के लिए, कर सकते हैं student.select में ()। whe 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 बुलाना है इसलिए आप .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 जहां 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 गलतियों, लेकिन हम के माध्यम से चल सकता है यह और आप फ्लास्क रखा जाएगा कि कैसे देखते हैं 604 00:31:30,220 --> 00:31:33,685 और साथ में Peewee, और एक सरल अनुप्रयोग बनाते हैं। 605 00:31:33,685 --> 00:31:38,680 मैं CS50 शेख़ी इसे कहते हैं, और यह है एक साधारण ब्लॉग मंच की तरह। 606 00:31:38,680 --> 00:31:41,150 >> तो, सबसे पहले, मैं इसे चलने देंगे और , क्या ऐसा लग रहा दिखाने 607 00:31:41,150 --> 00:31:42,890 और फिर हम कोड में और अधिक देख सकते हैं। 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 ठीक है, तो सिर्फ इस चलाते हैं। 610 00:32:02,830 --> 00:32:14,040 611 00:32:14,040 --> 00:32:17,250 , मैं इस कूल बना देंगे थोड़ा छोटा। 612 00:32:17,250 --> 00:32:20,000 यह सिर्फ इसलिए नहीं बहुत सुंदर है मैं, सीएसएस का एक बहुत कुछ नहीं किया 613 00:32:20,000 --> 00:32:23,255 लेकिन यह क्या करता है, यह है, है ब्लॉग पोस्ट के इस डेटाबेस, 614 00:32:23,255 --> 00:32:25,630 और यह सभी के माध्यम से चला जाता है उन्हें, और यह उन्हें प्रदर्शित करेगा 615 00:32:25,630 --> 00:32:28,170 सबसे हाल के आदेश में पेज पर। 616 00:32:28,170 --> 00:32:30,920 और हां ये सिर्फ कुछ पोस्ट कर रहे हैं मैं डेटाबेस में बचाया था। 617 00:32:30,920 --> 00:32:35,680 >> हम एक नया बनाना चाहते हैं तो पद, हम एक नई पोस्ट जोड़ें करने के लिए जा सकते हैं 618 00:32:35,680 --> 00:32:42,720 और हम के खिताब से प्रवेश कर सकते हैं पद, तो कुछ की तरह, CS50 संगोष्ठी। 619 00:32:42,720 --> 00:32:45,360 620 00:32:45,360 --> 00:32:46,735 वाह, वास्तव में संगोष्ठी का आनंद ले रहे। 621 00:32:46,735 --> 00:32:51,070 622 00:32:51,070 --> 00:32:52,270 >> कूल। 623 00:32:52,270 --> 00:32:56,060 तो फिर आप बाद प्रेस, और यह होगा होम पेज पर आप वापस रीडायरेक्ट, 624 00:32:56,060 --> 00:33:00,039 और उसके बाद आप देखेंगे कि नवीनतम पोस्ट जोड़ा गया है। 625 00:33:00,039 --> 00:33:01,580 और हम अभी भी वहाँ सभी लोगों के लिए है। 626 00:33:01,580 --> 00:33:08,080 तो अब, चलो सब के माध्यम से कदम चलो कोड और इस कार्यान्वित किया जाता है कैसे देखते हैं। 627 00:33:08,080 --> 00:33:11,995 >> इसलिए मैं समझता हूं कि चलो पहली बात यह लगता है , वास्तव में मॉडल है पर एक नज़र रखना। 628 00:33:11,995 --> 00:33:14,120 समय की एक बहुत, जब यदि आप कुछ डिजाइन कर रहे हैं, 629 00:33:14,120 --> 00:33:17,036 आप कैसे के बारे में पहले सोचना चाहते यदि आप अपने डेटा का प्रतिनिधित्व करने के लिए जा रहे हैं 630 00:33:17,036 --> 00:33:22,915 और फिर उस के आसपास बातें डिजाइन, तो यह है कि सब कुछ समझ में आता है। 631 00:33:22,915 --> 00:33:25,290 और कहा कि मैं वास्तव में कैसे है मैं यह कर रहा था, जब यह किया 632 00:33:25,290 --> 00:33:28,030 मैं बैठ गया और सोचा मैं एक पोस्ट में क्या करना चाहते हैं। 633 00:33:28,030 --> 00:33:32,130 >> तो, यहाँ, हम एक ही संरचना है जैसा कि मैंने पहले उल्लेख किया गया है कि, 634 00:33:32,130 --> 00:33:33,755 हम DB = Sqldatabase ('posts.db') करते हैं। 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 हकीकत में, आप शायद नहीं करना चाहते आपके नाम के डेटाबेस में कड़ी मेहनत करने के लिए कोड। 637 00:33:40,980 --> 00:33:43,730 यही कारण है कि शायद एक पैरामीटर होना चाहिए हो सकता है कि कहीं न कहीं संग्रहीत किया जाता है 638 00:33:43,730 --> 00:33:45,940 एक config फाइल में है, लेकिन में इस तरह से एक छोटा सा उदाहरण है, 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 और यह फिर से है, आईडी = PrimaryKeyField। 642 00:33:56,930 --> 00:34:02,250 असल में, आप निर्दिष्ट नहीं करते हैं, तो मैं वास्तव में इस से छुटकारा मिल गया है, तो 643 00:34:02,250 --> 00:34:07,152 फिर हम का ख्याल रखना होगा Peewee स्वचालित रूप से उस आईडी क्षेत्र बनाने, 644 00:34:07,152 --> 00:34:09,360 और यह स्वचालित रूप से होगा यह एक PrimaryKey, जो करना 645 00:34:09,360 --> 00:34:12,485 मैं, क्योंकि आम तौर पर, सच में अच्छा लगता है कि, आप चाहते हैं कुछ है 646 00:34:12,485 --> 00:34:16,239 लेकिन मैं विशेष रूप में डाल करना चाहते, अभी तो मैं यह वहाँ में है कि याद है। 647 00:34:16,239 --> 00:34:19,480 लेकिन आपको लगता है कि निर्दिष्ट नहीं करते हैं, तो कि स्वचालित रूप से की जाएगी। 648 00:34:19,480 --> 00:34:22,198 >> तो फिर, मैं एक तारीख है जो एक DateTimeField है, और सभी 649 00:34:22,198 --> 00:34:24,864 इन विभिन्न क्षेत्रों, अगर आप Peewee प्रलेखन को देखो, 650 00:34:24,864 --> 00:34:28,920 यह आप अलग अलग की एक सूची दे देंगे आप उपयोग कर सकते हैं कि खेतों के प्रकार। 651 00:34:28,920 --> 00:34:34,440 अधिकांश भाग के लिए, यह अनुरूप है आप एसक्यूएल में देखना होगा कि क्या करने के लिए। 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 एसक्यूएल में, यह निर्दिष्ट करेगा यह है कि अद्वितीय हो। 661 00:35:06,865 --> 00:35:09,740 तुम भी तरह कुछ निर्दिष्ट कर सकते हैं नहीं अशक्त और अन्य सभी चीजें 662 00:35:09,740 --> 00:35:11,750 आप सामान्य रूप से एसक्यूएल में करते हैं। 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 साथ दोहरी जांच 673 00:35:44,240 --> 00:35:47,080 यह जब मूल्यांकन कर रहा है कि वास्तव में बाकी डाला, या हो जाता है 674 00:35:47,080 --> 00:35:48,780 आप भ्रमित हो सकता है। 675 00:35:48,780 --> 00:35:51,221 >> शीर्षक सिर्फ एक है CharField, वहाँ जो 676 00:35:51,221 --> 00:35:53,970 आप पास कर सकते हैं और अधिक बहस कर रहे हैं निर्दिष्ट करने वास्तव में कितनी देर में आप 677 00:35:53,970 --> 00:35:56,170 इसे देखना चाहते हैं, लेकिन यहां यह वास्तव में कोई फर्क नहीं था। 678 00:35:56,170 --> 00:35:58,687 और पाठ किया जा रहा है पूरी पोस्ट का पाठ 679 00:35:58,687 --> 00:36:01,020 और कहा कि एक होने जा रहा है आप चाहते हैं, सिर्फ इसलिए कि TextField 680 00:36:01,020 --> 00:36:03,370 यह एक बहुत लंबी स्ट्रिंग होने की अनुमति देने के लिए। 681 00:36:03,370 --> 00:36:05,970 >> तो फिर हम इस मेटा है उपवर्ग है कि बस 682 00:36:05,970 --> 00:36:11,250 हम डेटाबेस चाहते हैं कि निर्दिष्ट यह वास्तव में खोला है जहां 683 00:36:11,250 --> 00:36:14,267 हम यहाँ है कि डीबी वस्तु हो। 684 00:36:14,267 --> 00:36:16,350 और आखिरी बात हम है यहां सिर्फ इस समारोह है 685 00:36:16,350 --> 00:36:18,120 हम करने जा रहे हैं कि हमारी मुख्य अनुप्रयोग से उपयोग 686 00:36:18,120 --> 00:36:23,970 से कनेक्ट करने के लिए डेटाबेस प्रारंभ करने के लिए यह, और फिर पोस्ट तालिका बनाने के लिए। 687 00:36:23,970 --> 00:36:26,880 >> अब, हम मुख्य अनुप्रयोग ही को देखो। 688 00:36:26,880 --> 00:36:30,800 तो यह एक है काफी लोगों की तुलना में लंबे समय तक सा 689 00:36:30,800 --> 00:36:34,840 हम पहले देखा है कि, लेकिन उम्मीद है कि बहुत बुरा नहीं। 690 00:36:34,840 --> 00:36:37,140 तो, मुझे यह बाहर का विस्तार करते हैं। 691 00:36:37,140 --> 00:36:38,370 ठीक है। 692 00:36:38,370 --> 00:36:42,070 >> तो, नोटिस और शीर्ष मैं आयातित अन्य चीजों की एक पूरी गुच्छा 693 00:36:42,070 --> 00:36:44,129 कुप्पी से हम नहीं है कि वास्तव में पहले कभी नहीं देखा। 694 00:36:44,129 --> 00:36:46,670 और उम्मीद है, हम के माध्यम से जा सकते हैं इन एक के बाद एक से हर एक को 695 00:36:46,670 --> 00:36:49,420 और के बारे में एक छोटे से अधिक बात उन्हें, उदाहरण के द्वारा हल। 696 00:36:49,420 --> 00:36:51,380 तो, हम, फ्लास्क है और render_template, 697 00:36:51,380 --> 00:36:54,370 जो हम पहले देखा है इस अनुरोध वस्तु, 698 00:36:54,370 --> 00:37:00,400 हम देखो कैसे जब तक आ जाएगा जो मैं वास्तव में दिखा रहा था कि फार्म 699 00:37:00,400 --> 00:37:01,170 काम करता है। 700 00:37:01,170 --> 00:37:04,850 आप को दिशानिर्देश देता है, जो पुन: निर्देशित वापस बनाएं नई पोस्ट से 701 00:37:04,850 --> 00:37:11,710 मूल मुखपृष्ठ पर वापस, और उसके बाद आप की सुविधा देता है कि कुछ है जो यूआरएल, 702 00:37:11,710 --> 00:37:15,550 पर जहां यह पता लगाने वेबसाइट पर एक विशेष पेज है। 703 00:37:15,550 --> 00:37:17,810 >> तो फिर, अगले मैं क्या बात है, मैं आयात होता है 704 00:37:17,810 --> 00:37:21,550 मॉडल से जानकारी के सभी हम बस पर देख रहे थे कि फ़ाइलें। 705 00:37:21,550 --> 00:37:23,140 और, हाँ। 706 00:37:23,140 --> 00:37:28,720 >> तो, नया कुछ और आता है कि आप के साथ काम कर रहे हैं जब तक, 707 00:37:28,720 --> 00:37:31,850 विशेष रूप से डेटाबेस, आप निर्दिष्ट कर सकते हैं 708 00:37:31,850 --> 00:37:35,110 पहले कहा जाता हो जाता है कि एक समारोह हो जाता है कि हर अनुरोध, और समारोह 709 00:37:35,110 --> 00:37:39,690 इस का उपयोग कर, हर अनुरोध के बाद बुलाया समारोह डेकोरेटर app.before अनुरोध। 710 00:37:39,690 --> 00:37:42,324 >> और इसलिए इस मार डाला जाएगा जहां भी इस समारोह है। 711 00:37:42,324 --> 00:37:44,240 यह होना जरूरी नहीं है अनुरोध करने से पहले कहा जाता है, 712 00:37:44,240 --> 00:37:46,281 लेकिन आम तौर पर है कि कुछ है यह कॉल करने के समझदार। 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 आप जो कुछ भी समारोह निर्दिष्ट कर सकते हैं तुम वहाँ बुलाया प्राप्त करना चाहते हैं 715 00:37:51,650 --> 00:37:56,330 इसलिए मैं इस initialize_db निर्दिष्ट हम मॉडल में वापस था कि समारोह 716 00:37:56,330 --> 00:38:02,390 फ़ाइल है, तो हर अनुरोध करने से पहले, आप डेटाबेस से कनेक्ट करना चाहते हैं। 717 00:38:02,390 --> 00:38:04,560 >> अलग-अलग दो रहे हैं तरीकों से आप यह कर सकते हैं। 718 00:38:04,560 --> 00:38:10,830 आपapp कर सकते हैं।, मैं यह after_request है विश्वास। 719 00:38:10,830 --> 00:38:13,800 और के बीच अंतर after_request और teardown_request, 720 00:38:13,800 --> 00:38:17,590 after_request तभी हो जाएगा कि है अनुरोध वास्तव में वैध था। 721 00:38:17,590 --> 00:38:20,440 और हां, तो सिर्फ अगर अनुरोध सफल रहा था, 722 00:38:20,440 --> 00:38:22,490 , कुछ भी गलत हो गया है, तो लेकिन teardown_request 723 00:38:22,490 --> 00:38:26,300 एक सफल के मामले में होता है अनुरोध है, या किसी त्रुटि के मामले में। 724 00:38:26,300 --> 00:38:28,252 >> तो, आमतौर पर, आप चाहते हैं teardown_request का उपयोग करने के लिए, 725 00:38:28,252 --> 00:38:30,460 आप क्या करना चाहते हैं जब तक विशेष रूप से कुछ अलग है, 726 00:38:30,460 --> 00:38:31,470 एक त्रुटि के मामले में। 727 00:38:31,470 --> 00:38:35,122 लेकिन सिर्फ डेटाबेस को बंद करने के लिए, , यह सफल होता है या अगर यह विफल रहता है कि क्या 728 00:38:35,122 --> 00:38:37,080 हम आप डिस्कनेक्ट करने के लिए करना चाहते हैं डेटाबेस से। 729 00:38:37,080 --> 00:38:41,240 तो यह db.close, कहा जाता है डीबी वस्तु पर। 730 00:38:41,240 --> 00:38:43,740 >> Teardown_request कि नोटिस एक अपवाद में लेता है। 731 00:38:43,740 --> 00:38:46,781 वास्तव में अगर वहाँ था तो आप देख सकते हैं एक त्रुटि यह नीचे बंद किया गया था जब 732 00:38:46,781 --> 00:38:49,390 लेकिन यहाँ, उम्मीद है, वहाँ त्रुटियों की एक पूरी बहुत कुछ नहीं कर रहे हैं, 733 00:38:49,390 --> 00:38:52,720 तो हम बस की तरह है कि अनदेखी कर रहे हैं। 734 00:38:52,720 --> 00:38:55,990 >> ठीक है, और बाकी की भी बुरा नहीं है। 735 00:38:55,990 --> 00:39:02,240 तो, हम घर पृष्ठ पर जाने के लिए जब, हम इस home.html खाका प्रदान की गई है 736 00:39:02,240 --> 00:39:03,490 कि खुल जाएगा। 737 00:39:03,490 --> 00:39:06,240 पास पोस्ट में है और क्या इस के बराबर 738 00:39:06,240 --> 00:39:10,260 , हम इस पोस्ट याद किया जाता है करता है मॉडल है, इसलिए हम सभी पदों का चयन 739 00:39:10,260 --> 00:39:13,890 और फिर आप क्या कर सकते हैं एक और बात, आप कहां खंड निर्दिष्ट कर सकते हैं 740 00:39:13,890 --> 00:39:16,910 आप एक निर्दिष्ट कर सकते हैं द्वारा आदेश है, और इसलिए हम ले 741 00:39:16,910 --> 00:39:18,820 पदों की है कि सभी तब चयनित हो, और 742 00:39:18,820 --> 00:39:22,590 हम उनके द्वारा आदेश post.date.descending। 743 00:39:22,590 --> 00:39:25,030 और कहा कि निर्दिष्ट करेगा, जब वे वास्तव में बाहर आ 744 00:39:25,030 --> 00:39:29,250 सबसे हाल ही में एक बहुत पहले एक हो जाएगा। 745 00:39:29,250 --> 00:39:31,420 >> और फिर, हम में है कि पारित home.html टेम्पलेट, 746 00:39:31,420 --> 00:39:34,240 तो चलो वास्तव में ऊपर खुला बहुत जल्दी है कि खाका 747 00:39:34,240 --> 00:39:36,760 और कहा कि काम कर रहा है पर एक नज़र रखना। 748 00:39:36,760 --> 00:39:42,130 और यह महान एचटीएमएल नहीं है, लेकिन उम्मीद है, हम अजगर पर ध्यान केंद्रित कर सकते हैं। 749 00:39:42,130 --> 00:39:46,960 >> इसलिए जोड़ें नए के लिए एक कड़ी है पोस्ट, और इसलिए इस मार्ग को निर्दिष्ट 750 00:39:46,960 --> 00:39:51,580 फ्लास्क के भीतर है कि हम यहीं है, जो परिभाषित करते हैं। 751 00:39:51,580 --> 00:39:56,310 इस नए पद मार्ग है, और हम यहाँ है कि ऊपर निर्दिष्ट करें। 752 00:39:56,310 --> 00:40:00,450 और इतना है कि तब जाना होगा कि एक कड़ी है फ्लास्क सर्वर के भीतर है कि मार्ग के लिए। 753 00:40:00,450 --> 00:40:03,820 >> अधिक दिलचस्प बात यह है कि यहां पाश के लिए यह है। 754 00:40:03,820 --> 00:40:07,685 इसलिए हम यह है कि निर्दिष्ट पोस्ट पैरामीटर जो 755 00:40:07,685 --> 00:40:09,560 में पारित किया गया था render_template समारोह, 756 00:40:09,560 --> 00:40:13,550 पोस्ट के दशक में हर पद के लिए में पारित हो जाता है कि वस्तु। 757 00:40:13,550 --> 00:40:16,600 हम बाहर मुद्रित करना चाहते हैं पोस्ट शीर्षक, एच 1 में, 758 00:40:16,600 --> 00:40:21,930 और फिर नीचे, हम बाहर मुद्रित करना चाहते हैं एक पैरा के भीतर पोस्ट पाठ। 759 00:40:21,930 --> 00:40:25,710 >> और यहाँ, हम वास्तव में कर सकते हैं एक अजगर समारोह कॉल, 760 00:40:25,710 --> 00:40:35,130 इसलिए हम strftime कॉल कर सकते हैं, अनुसूचित जनजाति-आरएफ समय, और आप प्रारूप स्ट्रिंग में पारित कर सकते हैं 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 और इस के अनुरूप है चीजें आप पीएचपी में कर सकते हैं। 779 00:41:30,780 --> 00:41:32,905 तुम्हें पता है, के माध्यम से पुनरावृति कर सकते हैं सब कुछ है, में पारित हो जाता है 780 00:41:32,905 --> 00:41:36,719 और हां, तो बजाय होने का क्या करना कॉपी / पेस्ट, कॉपी / सभी HTML पेस्ट 781 00:41:36,719 --> 00:41:40,010 अगर आप अभी तो एक बार यह लिखने के लिए है, और आप पोस्ट के सभी पुनरावृति कर सकते हैं। 782 00:41:40,010 --> 00:41:41,510 >> और यह कुछ है आप चाहते हैं कि आम 783 00:41:41,510 --> 00:41:44,510 आप डेटा का एक बहुत कुछ है, जब ऐसा करने के लिए, , जो आपके डेटा में सब कुछ के लिए है 784 00:41:44,510 --> 00:41:48,370 आप एक ऐसी ही बात करना चाहते हैं। 785 00:41:48,370 --> 00:41:51,690 और फिर, बस याद है जब आपको लगता है कि स्पष्ट रूप से कुछ बाहर मुद्रित करना चाहते हैं 786 00:41:51,690 --> 00:41:54,780 HTML में, आप का उपयोग यहां डबल ब्रेसिज़, 787 00:41:54,780 --> 00:41:57,820 लेकिन फिर आप निर्दिष्ट करना चाहते हैं जब एक की हालत के बारे में कुछ जानकारी 788 00:41:57,820 --> 00:42:02,430 या के बारे में एक पाश के लिए, आप प्रतिशत ब्रैकेट का उपयोग करें। 789 00:42:02,430 --> 00:42:08,730 >> तो, पायथन के लिए वापस जा रहा कोड, तो बताते हैं कि 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 आप अंत नहीं है, बस इतना इस बड़े, बोझल यूआरएल के साथ। 812 00:43:15,760 --> 00:43:18,970 लेकिन तुम भी एक अनुरोध प्राप्त इस्तेमाल कर सकते हैं, और, चर मार्ग के साथ उस में पारित 813 00:43:18,970 --> 00:43:21,170 लेकिन रूपों के लिए, यह अच्छा है यहाँ एक पोस्ट अनुरोध करने के लिए। 814 00:43:21,170 --> 00:43:24,620 और इतना तो बस आप की तरह HTML और PHP के साथ क्या होता है, 815 00:43:24,620 --> 00:43:28,420 आप इन पाठ आदानों निर्दिष्ट कर सकते हैं, और आप उनमें से नाम निर्दिष्ट कर सकते हैं, 816 00:43:28,420 --> 00:43:33,490 और कहा कि पारित हो जाएगा कि नाम है फ्लास्क के भीतर अनुरोध वस्तु में। 817 00:43:33,490 --> 00:43:36,960 >> और फिर हम एक प्रस्तुत किया है बटन पोस्ट का कहना है कि। 818 00:43:36,960 --> 00:43:40,760 और यहाँ, पद का नाम है बटन, यह एक ब्लॉग पोस्ट है, क्योंकि 819 00:43:40,760 --> 00:43:42,700 लेकिन यहाँ, पोस्ट अनुरोध विधि है। 820 00:43:42,700 --> 00:43:47,060 तो वे एक ही शब्द हैं लेकिन वास्तव में असंबंधित। 821 00:43:47,060 --> 00:43:48,460 हाँ 822 00:43:48,460 --> 00:43:54,800 >> अजगर कोड के लिए वापस जा रहे हैं, हम विधि बनाने जब कहा जाता है, 823 00:43:54,800 --> 00:43:57,702 यहाँ नोटिस कि आप कर सकते हैं वास्तव में मार्ग के भीतर निर्दिष्ट 824 00:43:57,702 --> 00:44:00,650 अनुरोध तरीकों आप स्वीकार करना चाहते हैं कि, 825 00:44:00,650 --> 00:44:04,770 और तो यहाँ, मुझे लगता है कि मैं निर्दिष्ट केवल एक पोस्ट विधि स्वीकार करना चाहते हैं। 826 00:44:04,770 --> 00:44:09,800 तो, मैं वास्तव में पेज यात्रा करने की कोशिश करता है, तो सीधे, एक अनुरोध प्राप्त उपयोग कर रहा है, जो 827 00:44:09,800 --> 00:44:11,700 यह "विधि की अनुमति नहीं है।" मुझे बताना होगा 828 00:44:11,700 --> 00:44:15,840 >> और हां, अगर आप की तरह की तरह पृष्ठों है मैं केवल हूँ जो इस बनाने के पेज, 829 00:44:15,840 --> 00:44:20,192 वास्तव में एक रास्ते के रूप में प्रयोग फार्म जमा करने के लिए, 830 00:44:20,192 --> 00:44:22,900 क्या आप ऐसा नहीं है कि निर्दिष्ट कर सकते हैं लोगों को वहाँ जाने के लिए सक्षम होना चाहता हूँ 831 00:44:22,900 --> 00:44:25,650 सीधे एक अनुरोध प्राप्त के माध्यम से, या आप नहीं करना चाहता था, तो 832 00:44:25,650 --> 00:44:28,580 किसी कारण के लिए, एक पोस्ट अनुरोध, आप बस, यहाँ लाने निर्दिष्ट कर सकता है 833 00:44:28,580 --> 00:44:32,720 लेकिन इस उदाहरण में, हम सिर्फ पोस्ट अनुरोध बाहर जाना चाहते हैं। 834 00:44:32,720 --> 00:44:38,700 >> तो, create_post कहा जाता है, जब हम, पोस्ट अनुरोध के माध्यम से उस यात्रा 835 00:44:38,700 --> 00:44:43,600 यदि आप किसी खास के लिए जाने के लिए जब भी मार्ग, इस अनुरोध को वस्तु नहीं है, 836 00:44:43,600 --> 00:44:46,640 और हम आयात करना पड़ा ऊपर से ही अनुरोध, 837 00:44:46,640 --> 00:44:49,640 लेकिन इस अनुरोध को भी नहीं है में पारित हो जाता है कि वस्तु, 838 00:44:49,640 --> 00:44:53,210 और आप प्रपत्र डेटा का उपयोग कर सकते हैं, जो स्वचालित रूप से भरा हो जाएगा 839 00:44:53,210 --> 00:44:55,070 आप एक रूप से एक अनुरोध भेजने के लिए जब। 840 00:44:55,070 --> 00:44:56,990 >> और फिर, मैं क्या लगता है वास्तव में अच्छा है 841 00:44:56,990 --> 00:45:02,840 प्रपत्र वस्तु पारित करने के लिए है कि में, बस एक अजगर शब्दकोश है कि 842 00:45:02,840 --> 00:45:10,560 आप तो यहाँ access-- हैं, तो, चलो शामिल मुझे सिर्फ यह करने के लिए अगले एचटीएमएल तक खींच 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 तुम तो करना होगा एसक्यूएल क्वेरी को निष्पादित, 855 00:45:55,210 --> 00:45:59,550 लेकिन यहाँ हम बस यह अच्छा है post.create, जो हम तो कर सकते हैं बस 856 00:45:59,550 --> 00:46:01,520 जानकारी बाहर निकलना अनुरोध वस्तु की, 857 00:46:01,520 --> 00:46:05,370 और फिर एक नया में इसे पारित हम बना रहे हैं कि पोस्ट। 858 00:46:05,370 --> 00:46:07,850 >> और, बहुत पिछले तब हम क्या करना चाहते बात है, 859 00:46:07,850 --> 00:46:09,630 रीडायरेक्ट करने के लिए है घर के लिए उपयोगकर्ता वापस। 860 00:46:09,630 --> 00:46:13,020 और इसलिए हम इस का उपयोग फ्लास्क समारोह भेज दें। 861 00:46:13,020 --> 00:46:17,770 और कुछ हम नहीं देखा था कि इससे पहले, इस यूआरएल समारोह था। 862 00:46:17,770 --> 00:46:21,970 तो समारोह के लिए URL की सुविधा देता है आप वास्तव में नाम में पारित 863 00:46:21,970 --> 00:46:26,090 अपने अजगर कोड में एक समारोह का, बल्कि विशेष मार्ग से 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 जो इसे घर वापस भेजने के लिए, लेकिन होगा समारोह अच्छा है के लिए यूआरएल का उपयोग कर, 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 समारोह के नाम पर है, और यह तुम उस के लिए यूआरएल वापस दे देंगे। 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 आप वास्तव में इस का उपयोग कर सकते हैं समारोह के लिए अच्छा यूआरएल। 874 00:46:58,840 --> 00:47:02,470 और एक बात के बारे में पता करने के लिए कि, थोड़ा मुश्किल है 875 00:47:02,470 --> 00:47:05,750 तुम सिर्फ सकता है लगता है कि के लिए यूआरएल पर पुनर्निर्देशित कर कहते हैं, 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 इन सब के लौटने के लिए है क्योंकि एचटीएमएल आप वास्तव में प्रस्तुत करना चाहते हैं। 880 00:47:21,420 --> 00:47:26,980 >> और हां, तो आप अनुप्रेषित फोन करते हैं, यह पेज पर रीडायरेक्ट 881 00:47:26,980 --> 00:47:30,270 लेकिन यह वास्तव में एचटीएमएल रिटर्न आपको लगता है कि अनुप्रेषित पर अमल करने की जरूरत है। 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 और निश्चित रूप से, यह काम करने के लिए आसान है टेम्पलेट में कुछ अच्छे सीएसएस में 896 00:48:12,230 --> 00:48:15,580 और यह एक बहुत अच्छे लग रहे बनाने के लिए, लेकिन मुख्य तर्क के सभी 897 00:48:15,580 --> 00:48:18,590 अजगर में नहीं है। 898 00:48:18,590 --> 00:48:20,020 >> कि उदाहरण के बारे में कोई सवाल? 899 00:48:20,020 --> 00:48:22,760 मैं एक बहुत की कर रहे हैं पता अलग अलग चीजें हैं, वहाँ पर जा 900 00:48:22,760 --> 00:48:25,341 हम नहीं देखा था बहुत सारी बातें इससे पहले, लेकिन कुछ भी पसंद है। 901 00:48:25,341 --> 00:48:25,840 हाँ। 902 00:48:25,840 --> 00:48:28,346 >> दर्शकों 1: आप कुछ भी करने के लिए क्या है है कि डेटा हाथ धोने के लिए विशेष 903 00:48:28,346 --> 00:48:29,600 फार्म से में आ रहा है? 904 00:48:29,600 --> 00:48:31,109 मैंने कहा, "बनाते हैं," अगर आप सिर्फ इतना कहा देखा 905 00:48:31,109 --> 00:48:33,900 EZRA Zigmond: हाँ, तो वह है वास्तव में, यह वास्तव में एक अच्छी बात है। 906 00:48:33,900 --> 00:48:36,350 सवाल था तो, आप करते हैं जाँच करें और सुनिश्चित करने की जरूरत 907 00:48:36,350 --> 00:48:39,190 डेटा, मान्य है और स्क्रबिंग के किसी भी प्रकार 908 00:48:39,190 --> 00:48:41,840 यह वैध है कि यह सुनिश्चित करना, आप यहाँ देख सकते हैं, क्योंकि 909 00:48:41,840 --> 00:48:42,660 मुझे लगता है कि नहीं कर रहा हूँ। 910 00:48:42,660 --> 00:48:48,140 तो चलो देखते हैं क्या होता मैं खाली कुछ पोस्ट है। 911 00:48:48,140 --> 00:48:51,190 इसलिए, यह वास्तव में सिर्फ एक बना देंगे खाली पद और दिनांक समय में भरें। 912 00:48:51,190 --> 00:48:55,990 >> तो वास्तव में, आप शायद होगा की तरह कुछ करना चाहते हैं, 913 00:48:55,990 --> 00:49:04,749 शीर्षक के बराबर है, तो शायद यह निर्दिष्ट खाली स्ट्रिंग, तो ऐसा नहीं करते हैं। 914 00:49:04,749 --> 00:49:07,290 शीर्षक है या, यदि सिर्फ यह करना है खाली स्ट्रिंग के बराबर नहीं। 915 00:49:07,290 --> 00:49:10,330 तो यह वास्तव में स्वचालित रूप से नहीं करता है कि स्क्रबिंग की देखभाल 916 00:49:10,330 --> 00:49:12,820 आप के लिए है, तो आप अभी भी है कि क्या करने की जरूरत। 917 00:49:12,820 --> 00:49:14,330 हाँ, अच्छा सवाल है। 918 00:49:14,330 --> 00:49:18,497 >> दर्शकों 2: यह साफ़ करता है अगली कड़ी इंजेक्शन के लिए? 919 00:49:18,497 --> 00:49:19,890 क्या आपको पता है? 920 00:49:19,890 --> 00:49:22,830 >> EZRA Zigmond: उम्मीद है, Peewee कि करता है। 921 00:49:22,830 --> 00:49:25,830 मैं यह निश्चित रूप से एक बहुत हो जाएगा लगता है बुरा पुस्तकालय यह है कि ऐसा नहीं किया। 922 00:49:25,830 --> 00:49:29,511 923 00:49:29,511 --> 00:49:32,690 मुझे ठीक से पता नहीं है। 924 00:49:32,690 --> 00:49:34,820 मैं देखने के लिए होता है यह उत्पन्न करने वाली क्वेरी। 925 00:49:34,820 --> 00:49:38,980 मैं एक में टाइप करते हैं, तो लगता है कि एक तरह से देखा है कि ब्लॉग पोस्ट 926 00:49:38,980 --> 00:49:46,370 एक एसक्यूएल इंजेक्शन हमले की तरह, कुछ इस तरह, अगर यह 927 00:49:46,370 --> 00:49:49,370 एक पासवर्ड क्षेत्र या कुछ और की तरह है, आप इस तरह से कुछ कर सकता है। 928 00:49:49,370 --> 00:49:53,410 >> मुझे लगता है कि अभी भी लगता है कि सचमुच तैनात मिलता है, 929 00:49:53,410 --> 00:49:59,200 लेकिन मैं Peewee करता है कि लगता है डेटा की स्क्रबिंग के कुछ प्रकार 930 00:49:59,200 --> 00:50:01,680 यह वास्तव में इसे कार्यान्वित करने से पहले। 931 00:50:01,680 --> 00:50:04,510 >> दर्शकों 1: यह पाठ क्षेत्र है ठीक है, सादा पाठ लेने के लिए बनाया? 932 00:50:04,510 --> 00:50:05,710 >> EZRA Zigmond: हाँ, यह है। 933 00:50:05,710 --> 00:50:06,465 हाँ। 934 00:50:06,465 --> 00:50:09,590 इसलिए मुझे लगता है की सब को लगता है कि, तो यह है सही व्यवहार, कि ऐसा करेंगे, 935 00:50:09,590 --> 00:50:12,170 लेकिन मुझे लगता है कि Peewee लगता है उम्मीद है कि क्या करता है 936 00:50:12,170 --> 00:50:13,780 अपने अंत पर सुरक्षा के कुछ प्रकार। 937 00:50:13,780 --> 00:50:16,090 और अगर तुम चाहते थे डबल चेक, कि वहां 938 00:50:16,090 --> 00:50:19,530 आप एक प्रश्न उत्पन्न जब तरीके हैं। 939 00:50:19,530 --> 00:50:22,622 इसलिए यदि आप के लिए नहीं है इसे सीधे निष्पादित। 940 00:50:22,622 --> 00:50:24,330 मैं एक लेना होगा प्रलेखन को देखो, 941 00:50:24,330 --> 00:50:27,930 लेकिन आप वास्तव में देख सकते हैं यह पैदा होता है कि एसक्यूएल, 942 00:50:27,930 --> 00:50:30,840 और उस पर एक नज़र रखना, और बनाने यह बातें बचने है कि सुनिश्चित करें। 943 00:50:30,840 --> 00:50:33,700 >> एक और कारण है कि तुम हो सकता है एसक्यूएल में देखना चाहता हूँ 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 एक सबसेट का चयन करने के लिए होती। 950 00:50:51,320 --> 00:50:53,560 >> और हां, तो बातें करता है, तो नहीं हैं काफी सही जा रहा 951 00:50:53,560 --> 00:50:57,300 यह अनुरोध पर एक नज़र लेने के लिए अच्छा है कि वास्तव में उत्पन्न हो रही है। 952 00:50:57,300 --> 00:50:57,800 हाँ। 953 00:50:57,800 --> 00:51:02,100 >> दर्शकों 2: यदि आप पहली बार शुरू किया, आप 5000 के रूप में बंदरगाह में डाल दिया है। 954 00:51:02,100 --> 00:51:02,904 >> EZRA Zigmond: हाँ। 955 00:51:02,904 --> 00:51:06,070 दर्शकों 2: Peewee साथ डिफ़ॉल्ट है या आप बदल सकते हैं कि कुछ है? 956 00:51:06,070 --> 00:51:10,870 EZRA Zigmond: हाँ, तो पोर्ट कुप्पी के साथ डिफ़ॉल्ट है। 957 00:51:10,870 --> 00:51:13,061 आप बिना इसे चलाते हैं कुछ भी निर्दिष्ट 958 00:51:13,061 --> 00:51:14,310 यह स्वचालित रूप से ऐसा करेंगे। 959 00:51:14,310 --> 00:51:16,060 मैंने सोचा कि मैं होता है, का मानना ​​है इस दोहरी जांच करने के लिए, 960 00:51:16,060 --> 00:51:19,130 लेकिन आप app.run में है कि निर्दिष्ट कर सकते हैं मैं, आप ऐसा कुछ कर सकते हैं लगता है 961 00:51:19,130 --> 00:51:19,629 पोर्ट = 8080। 962 00:51:19,629 --> 00:51:22,375 963 00:51:22,375 --> 00:51:23,750 के एक असली जल्दी की कोशिश है कि देते हैं। 964 00:51:23,750 --> 00:51:29,100 965 00:51:29,100 --> 00:51:32,230 हाँ, तो आप सिर्फ निर्दिष्ट कर सकते हैं पोर्ट = 8080, और यह वहाँ यह चलेगा 966 00:51:32,230 --> 00:51:36,130 अगर तुम चाहते थे जो मुझे लगता है, इसे चलाने के लिए आईडीई पर, मैं इस बाहर की कोशिश नहीं की 967 00:51:36,130 --> 00:51:38,527 लेकिन मुझे लगता है कि अगर आप , पोर्ट 8080 पर वह भाग गया 968 00:51:38,527 --> 00:51:40,360 आप शायद सक्षम होगी सर्वर का उपयोग करने के लिए, 969 00:51:40,360 --> 00:51:41,870 बस आप वेबसाइट के लिए की तरह थे। 970 00:51:41,870 --> 00:51:44,390 >> हाँ, यह है, लेकिन आसान है बदलने के लिए है कि आप यदि 971 00:51:44,390 --> 00:51:48,540 जैसे बंदरगाह अग्रेषण के किसी भी प्रकार का है तुम क्या करने की जरूरत है कि चीजों। 972 00:51:48,540 --> 00:51:50,410 >> कोई ओर प्रश्न? 973 00:51:50,410 --> 00:51:50,916 हाँ? 974 00:51:50,916 --> 00:51:53,416 दर्शकों 1: तो, मैं में देखा अपने , जैसा कि आपने बताया कि मॉडल, 975 00:51:53,416 --> 00:51:55,647 आप निर्दिष्ट करने के लिए प्रत्येक वस्तु के लिए डेटाबेस। 976 00:51:55,647 --> 00:51:58,105 आप को पता होगा, क्या करता है कि आप यदि यह वास्तव में आसान बनाने के 977 00:51:58,105 --> 00:52:03,210 SQLite डेटाबेस के बहुत सारे है कि आप एक ही वेब अनुप्रयोग के लिए उपयोग करना चाहते हैं, 978 00:52:03,210 --> 00:52:07,210 आप सिर्फ एक गुच्छा निर्दिष्ट कर सकते हैं कि अपने मॉडल में से अलग अलग लोगों को? 979 00:52:07,210 --> 00:52:11,620 >> EZRA Zigmond: हाँ, मुझे जाने दो असली जल्दी कि ऊपर खुला। 980 00:52:11,620 --> 00:52:17,570 आप चाहते हैं, तो आप कह रहे हैं, कुछ अलग करने का एक गुच्छा, हो सकता है 981 00:52:17,570 --> 00:52:22,670 कुछ के लिए, चाहते हैं और छात्रों को कारण, ऐसा कुछ? 982 00:52:22,670 --> 00:52:26,870 हाँ, तो मुझे लगता है कि अभी भी आप प्रत्येक मॉडल 983 00:52:26,870 --> 00:52:30,652 अभी भी बस के लिए होता है उसे सौंपे एक डेटाबेस, 984 00:52:30,652 --> 00:52:32,610 लेकिन अगर तुम चाहते थे के लिए है विभिन्न मॉडलों कि 985 00:52:32,610 --> 00:52:35,818 विभिन्न डेटाबेस वस्तुओं सौंपा है यह करने के लिए, आप निश्चित रूप से ऐसा कर सकता है। 986 00:52:35,818 --> 00:52:43,070 तो, अगर मैं एक नया बनाया कुछ इस तरह, 987 00:52:43,070 --> 00:52:47,000 और अब यह एक छात्र है कि अजीब तरह से एक ब्लॉग पोस्ट की तरह लग रहा है 988 00:52:47,000 --> 00:52:49,390 मुझे लगता है कि निर्दिष्ट कर सकता है डेटाबेस यहाँ db_2 के बराबर है। 989 00:52:49,390 --> 00:52:51,390 तो, मुझे लगता है कि आप ऐसा कर सकते मुख्य रास्ता। 990 00:52:51,390 --> 00:52:54,560 991 00:52:54,560 --> 00:52:56,200 >> कूल। 992 00:52:56,200 --> 00:52:58,410 कोई ओर प्रश्न? 993 00:52:58,410 --> 00:53:02,170 >> तो सिर्फ एक छोटे से खत्म करने के लिए बिट, यहाँ कुछ संसाधन हैं, 994 00:53:02,170 --> 00:53:06,030 और इन स्लाइड ऑनलाइन पोस्ट कर दिया जाएगा ताकि आप वास्तव में इन कड़ियों को प्राप्त कर सकते हैं। 995 00:53:06,030 --> 00:53:08,500 सर्वश्रेष्ठ संसाधनों वास्तव में कर रहे हैं फ्लास्क के लिए दस्तावेज 996 00:53:08,500 --> 00:53:09,930 और खुद को Peewee। 997 00:53:09,930 --> 00:53:12,940 वे वास्तव में अच्छी तरह से लिखा रहे हैं, मुझे लगता है। 998 00:53:12,940 --> 00:53:18,180 तो, फ्लास्क वेबसाइट यहाँ है, और वे एक quickstart ट्यूटोरियल है कि 999 00:53:18,180 --> 00:53:20,710 इसी तरह के माध्यम से चलना होगा मैं के माध्यम से चला गया क्या करने के लिए चीजें, 1000 00:53:20,710 --> 00:53:23,560 लेकिन आप की समीक्षा की किसी भी तरह चाहते हैं मैं वहाँ गया था कि चीजों की, 1001 00:53:23,560 --> 00:53:26,200 या आप मैंने समझाया कि सोचा एक भ्रामक रास्ते में कुछ है, 1002 00:53:26,200 --> 00:53:28,390 वे वहाँ इसी तरह के उदाहरण होगा। 1003 00:53:28,390 --> 00:53:31,570 >> Peewee दस्तावेज है, और वे एक quickstart ट्यूटोरियल है 1004 00:53:31,570 --> 00:53:34,650 कि मुख्य मापदंडों पर चला जाता है आप उपयोग करना चाहते हैं जाएगा। 1005 00:53:34,650 --> 00:53:38,900 तो, बातें मैं के साथ के बारे में बात की थी अद्वितीय, और निर्दिष्ट करने चूक, 1006 00:53:38,900 --> 00:53:42,710 क्षेत्रों के विभिन्न प्रकार है कि आप उन सब नहीं होगी, का उपयोग कर सकते हैं। 1007 00:53:42,710 --> 00:53:44,690 >> इसके अलावा, अगर आपके पास Peewee के बारे में सवाल, 1008 00:53:44,690 --> 00:53:47,530 और आप, stackoverflow पर उन्हें पद वास्तव में Peewee बनाया है, जो पुरुष 1009 00:53:47,530 --> 00:53:49,500 पर चला जाता है और कभी-कभी उन जवाब। 1010 00:53:49,500 --> 00:53:53,200 उम्मीद है आप में एक सवाल है, तो उन्होंने कहा कि यह जवाब देने में सक्षम हो जाएगा 1011 00:53:53,200 --> 00:53:54,867 वह सब कुछ लिखा है। 1012 00:53:54,867 --> 00:53:56,700 मुझे लगता है कि सब कुछ लगता है मैं कवर करना चाहता था। 1013 00:53:56,700 --> 00:53:58,930 बाहर आने के लिए धन्यवाद। 1014 00:53:58,930 --> 00:54:02,688