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 งานสัมมนาครั้งนี้คือ "งูใหญ่ Web Apps กับขวด. " 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 คำบรรยายที่เป็น "และ แคระ "ซึ่งเป็นสิ่งที่ 11 00:00:24,330 --> 00:00:27,250 ที่เรากำลังจะพูดคุยเกี่ยวกับวิธีการ ในการโต้ตอบกับฐานข้อมูล SQL 12 00:00:27,250 --> 00:00:29,610 มันทำให้ดีจริงๆ 13 00:00:29,610 --> 00:00:32,390 >> ดังนั้นนี่เป็นเพียงบทสรุปอย่างรวดเร็ว ของสิ่งที่ฉันต้องการที่จะไปมากกว่า 14 00:00:32,390 --> 00:00:35,520 ดังนั้นก่อนเพียงหนึ่งสไลด์ ที่จะเป็น QuickStart, 15 00:00:35,520 --> 00:00:38,530 ซึ่งเป็นวิธีการที่จะได้รับทุกอย่าง ตั้งอยู่บนเครื่องคอมพิวเตอร์ของคุณ 16 00:00:38,530 --> 00:00:41,760 ฉันจะแสดงให้เห็นถึง นี้บนเครื่อง Mac ของฉันท้องถิ่น 17 00:00:41,760 --> 00:00:45,220 เพียงเพราะนั่นคือสิ่งที่ฉันได้กระทำนี้ ก่อนที่ผมสะดวกสบายมากที่สุดกับมัน 18 00:00:45,220 --> 00:00:48,510 แต่นี้เป็นมั่นเหมาะ ที่เป็นไปได้ใน CD50 IDE 19 00:00:48,510 --> 00:00:52,050 >> ดังนั้นหลังจากที่ผมต้องการที่จะ แนะนำสิ่งที่เป็นขวด 20 00:00:52,050 --> 00:00:55,089 และโน้มน้าวให้คุณว่าทำไมคุณควร ใช้ในสถานที่แรก 21 00:00:55,089 --> 00:00:56,880 แล้วฉันจะให้ได้อย่างรวดเร็ว ตัวอย่างของสิ่งที่คุณ 22 00:00:56,880 --> 00:01:00,550 สามารถทำได้ในขวดตัวอย่างรวดเร็ว ของสิ่งที่คุณสามารถทำได้ในแคระ, 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 หากคุณติดตั้ง pip ซึ่ง เป็นผู้จัดการแพคเกจหลาม, 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 ปกติคุณต้องใช้ sudo เพียง เพื่อให้สิทธิ์ในการทำงานออก 42 00:01:58,600 --> 00:02:01,080 และถ้าคุณกำลังใช้ ซุปเปอร์รุ่นเก่าหลาม 43 00:02:01,080 --> 00:02:05,100 ผมขอแนะนำให้ปรับปรุงหลามของคุณ หรือใช้ในการติดตั้ง EasyInstall pip 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 เป็นเวลานานคือสิ่งที่เป็น app เว็บหรือไม่ 48 00:02:15,585 --> 00:02:17,960 เพราะนั่นคือคำที่ฉัน คิดจะโยนรอบมาก 49 00:02:17,960 --> 00:02:19,240 ที่ผมไม่ทราบจริงๆ 50 00:02:19,240 --> 00:02:22,340 และผมคิดว่าสิ่งที่ดีที่สุด ตัวอย่างของสิ่งที่ app เว็บคือ 51 00:02:22,340 --> 00:02:26,960 จริงๆเป็น CS50 การเงินที่ มันไม่ได้จริงๆเพียงแค่เว็บไซต์ 52 00:02:26,960 --> 00:02:29,320 แต่มันเป็นสิ่งที่คุณ การเรียงลำดับของสามารถโต้ตอบกับ 53 00:02:29,320 --> 00:02:31,736 มีบัญชีผู้ใช้และ ทุกประเภทของสิ่งที่แตกต่างกัน 54 00:02:31,736 --> 00:02:35,010 ดังนั้นที่ว่าคุณวาด เส้นแบ่งระหว่างสิ่งที่เป็นเว็บไซต์ 55 00:02:35,010 --> 00:02:38,780 และสิ่งที่เป็น app เว็บจะเรียงลำดับของ โดยพลการ แต่ผมคิดว่าความคิด 56 00:02:38,780 --> 00:02:42,110 มันเป็นอะไรที่ดีกว่าเว็บไซต์ และมันเป็นโปรแกรมที่มีประโยชน์ 57 00:02:42,110 --> 00:02:46,081 >> ดังนั้นขวดเป็นกรอบสำหรับ ทำให้ปพลิเคชันเว็บใช้งูหลาม 58 00:02:46,081 --> 00:02:48,330 และหวังว่าในตอนท้าย นี้ผมจะโน้มน้าวให้คุณ 59 00:02:48,330 --> 00:02:52,210 จริงที่คุณสามารถเขียนบางสิ่งบางอย่าง เช่น CS50 การเงินใช้งูหลามซึ่งผม 60 00:02:52,210 --> 00:02:53,950 ชอบมากดีกว่า PHP ส่วนตัว 61 00:02:53,950 --> 00:02:57,320 >> ดังนั้นขวดคือพวกเขาเรียกว่า microframework โดยที่ 62 00:02:57,320 --> 00:02:59,800 พวกเขาหมายถึงมันมาก ที่เรียบง่าย แต่ขยาย 63 00:02:59,800 --> 00:03:02,980 ดังนั้นจึงมีเพียงแค่สิ่งที่คุณต้องการ แต่ถ้าคุณต้องการคุณสมบัติมากขึ้น 64 00:03:02,980 --> 00:03:04,522 มันเป็นเรื่องง่ายที่จะนำพวกเขาใน 65 00:03:04,522 --> 00:03:06,480 แต่เพียงเพราะมันเป็น microframework, ไม่ได้ 66 00:03:06,480 --> 00:03:08,960 หมายความว่ามันเป็นเพียงสำหรับโครงการขนาดเล็ก 67 00:03:08,960 --> 00:03:12,590 ฉันมีการเชื่อมโยงที่นี่ที่บอกว่า ว่าโอบามาใช้ขวดในปี 2012 68 00:03:12,590 --> 00:03:14,410 สำหรับการหาเสียงของเขา เว็บไซต์ซึ่งหวังว่า 69 00:03:14,410 --> 00:03:16,937 เป็นสิ่งที่รับรอง 70 00:03:16,937 --> 00:03:18,770 แต่สิ่งที่ผม ชอบเกี่ยวกับขวด 71 00:03:18,770 --> 00:03:22,401 คือว่ามันไม่ได้ทำจริงๆ การเรียงลำดับของการตัดสินใจใด ๆ สำหรับคุณ 72 00:03:22,401 --> 00:03:24,150 เพียงเพราะเรา พูดคุยเกี่ยวกับปพลิเคชันเว็บ 73 00:03:24,150 --> 00:03:26,940 ฉันต้องเปรียบเทียบกับ Ruby on ทางรถไฟและ Django ซึ่งทั้งสองอย่าง 74 00:03:26,940 --> 00:03:30,450 เป็นกรอบที่ดี แต่ พวกเขาทั้งสองทำให้สมมติฐาน 75 00:03:30,450 --> 00:03:33,600 เกี่ยวกับวิธีที่คุณต้องการ โต้ตอบกับฐานข้อมูล 76 00:03:33,600 --> 00:03:36,900 วิธีที่คุณต้องการที่จะนำเสนอของคุณ มุมมองและพวกเขากำลังแน่นอน 77 00:03:36,900 --> 00:03:38,850 แง่มุมที่ดีในการที่ 78 00:03:38,850 --> 00:03:41,490 >> ยกตัวอย่างเช่น Ruby on Rails มีระบบนี้บันทึกการใช้งาน 79 00:03:41,490 --> 00:03:43,100 ซึ่งเป็นที่ดีจริงๆ วิธีการโต้ตอบกับข้อมูล 80 00:03:43,100 --> 00:03:45,960 แต่ถ้าคุณต้องการที่จะใช้ Ruby on ทางรถไฟที่คุณกำลังเชื่อมโยงการจัดเรียงของเข้าที่ 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 แผงที่ 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 ดังนั้นถ้าคุณมีลักษณะบางอย่างเช่น "ฉันจะทำ x" ใน Django, 113 00:05:16,380 --> 00:05:18,190 คุณอาจจะพบว่ามัน 114 00:05:18,190 --> 00:05:20,260 >> มีการออกแบบที่ดี รูปแบบที่คุณสามารถใช้ 115 00:05:20,260 --> 00:05:22,660 แต่ด้วยขวดก็ การเรียงลำดับของไปทางของคุณเอง 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 แต่ localhost: 5000 133 00:06:23,960 --> 00:06:27,650 >> ดังนั้นตอนนี้ทั้งหมดนี้ไม่ คือเมื่อคุณเยี่ยมชมเว็บไซต์ที่ 134 00:06:27,650 --> 00:06:31,490 จะพิมพ์ออก "สวัสดีขวด" ซึ่งไม่เป็นประโยชน์สุด 135 00:06:31,490 --> 00:06:34,630 แต่ฉันคิดว่ามันเป็นเย็นที่ ในไฟล์เล็ก ๆ น้อย ๆ ที่นี่ 136 00:06:34,630 --> 00:06:37,390 เรามีเว็บเซิร์ฟเวอร์ที่ทำงาน ที่พิมพ์ออกบางสิ่งบางอย่าง 137 00:06:37,390 --> 00:06:40,500 ดังนั้นขอเป็นจริงการมอง รหัสเป็นครั้งที่สองที่ 138 00:06:40,500 --> 00:06:43,080 และทำลายมันลงเล็กน้อย 139 00:06:43,080 --> 00:06:45,260 คือขนาดที่ดีสำหรับทุกคนที่นี่? 140 00:06:45,260 --> 00:06:51,560 >> ดังนั้นหวังว่าคุณบ้าง สะดวกสบายใช้งูหลาม 141 00:06:51,560 --> 00:06:55,820 ฉันสมมติว่าเราสามารถมองไปที่ งูหลามและอ่านผ่านมัน 142 00:06:55,820 --> 00:06:59,290 หากคุณมีคำถามใด ๆ เกี่ยวกับ อะไรที่ฉันยังสามารถไปกว่าที่ 143 00:06:59,290 --> 00:07:03,974 >> ดังนั้นบรรทัดแรกคือจากขวด เรานำเข้า, กระติกน้ำที่มีทุน "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 ที่ฉันเพิ่งวิ่งดังนั้นเมื่อเราไปเฉือน เรียกฟังก์ชั่น Hello World ซึ่ง 184 00:09:16,430 --> 00:09:20,470 เพียงแค่ส่งกลับสตริงสวัสดีขวด และที่ได้รับการพิมพ์บนหน้าจอ 185 00:09:20,470 --> 00:09:27,290 >> ดังนั้นจึงมีอีกตัวอย่างหนึ่ง ซึ่งก็คือเมื่อคุณเยี่ยมชม / สวัสดี 186 00:09:27,290 --> 00:09:30,370 จะพิมพ์ออกมาสวัสดี Word, ซึ่ง จริงควรจะพูดว่าสวัสดีโลก 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 ดังนั้นตอนนี้ก็พูดว่า Hello World 206 00:10:33,140 --> 00:10:34,410 เราจะช่วยมัน 207 00:10:34,410 --> 00:10:36,540 และถ้าเราดึงกลับขึ้นไป สถานีที่คุณจะ 208 00:10:36,540 --> 00:10:39,520 บอกว่ามันเริ่มต้นใหม่ เพราะตรวจพบการเปลี่ยนแปลง 209 00:10:39,520 --> 00:10:43,620 และดังนั้นตอนนี้เมื่อเราโหลดหน้านี้ มันจะพิมพ์ออกมาสิ่งที่ถูกต้อง 210 00:10:43,620 --> 00:10:45,630 >> ดังนั้นการแก้ปัญหาเป็นซุปเปอร์ที่มีประโยชน์สำหรับการที่ 211 00:10:45,630 --> 00:10:48,740 นอกจากนี้ถ้าคุณมี การเรียงลำดับของความผิดพลาดดังนั้น 212 00:10:48,740 --> 00:10:54,370 ให้ฉันให้ความผิดพลาดของโปรแกรมนี้ โดยมีมันไม่กลับสตริง 213 00:10:54,370 --> 00:10:57,540 ดังนั้นขอเพียงแค่มีมัน กลับไม่มีเหตุผลบางอย่าง 214 00:10:57,540 --> 00:11:00,810 และแล้วเมื่อฉันเยี่ยมชม หน้ามันก็จะผิดพลาด 215 00:11:00,810 --> 00:11:04,465 แต่เซิร์ฟเวอร์ไม่เพียง แต่ความผิดพลาดมัน จริงจะช่วยให้คุณกลับมามีประโยชน์สุด 216 00:11:04,465 --> 00:11:06,490 ร่องรอยของทุกอย่างที่ผิดพลาดไป 217 00:11:06,490 --> 00:11:10,050 และสิ่งที่ดีจริงๆก็คือว่า ในขั้นตอนใด ๆ ในการตรวจสอบย้อนกลับนี้ 218 00:11:10,050 --> 00:11:14,260 คุณสามารถเปิดการโต้ตอบ เปลือกที่นี่และการเรียงลำดับของสิ่งที่พิมพ์ออกมา 219 00:11:14,260 --> 00:11:17,780 ตัวแปรที่คุณต้องการที่จะดูที่ 220 00:11:17,780 --> 00:11:21,054 >> และเพื่อให้การแก้จุดบกพร่องที่เป็นจริง มีประโยชน์สำหรับการหา 221 00:11:21,054 --> 00:11:23,470 สิ่งที่เกิดขึ้นกับคุณ เซิร์ฟเวอร์มากกว่าเพียงแค่เห็น 222 00:11:23,470 --> 00:11:28,201 บางสิ่งบางอย่างใน PHP เช่น 500 ภายใน ผิดพลาดของเซิร์ฟเวอร์ซึ่งจะไม่ได้ผลสุด 223 00:11:28,201 --> 00:11:30,700 สิ่งหนึ่งที่ต้องระวังคือ ว่าถ้าคุณใส่ app ออนไลน์ของคุณ 224 00:11:30,700 --> 00:11:34,260 ดังนั้นจึงเป็นเรื่องที่มองเห็นให้กับประชาชนคุณ ไม่ต้องการที่จะออกจากโหมดการแก้ปัญหาที่ 225 00:11:34,260 --> 00:11:37,320 เพราะคนที่สามารถจริง ใช้คอนโซลที่ฉัน 226 00:11:37,320 --> 00:11:39,150 แสดงให้เห็นว่าคุณสามารถรันโค้ด 227 00:11:39,150 --> 00:11:42,120 >> ดังนั้นพวกเขาจึงสามารถพิมพ์ออกมาอย่างใด รหัสลับที่คุณมีในที่นั่น 228 00:11:42,120 --> 00:11:44,755 พวกเขาสามารถมองที่ตรง วิธีการที่เว็บไซต์ของคุณเป็นที่ทำงาน 229 00:11:44,755 --> 00:11:46,630 ดังนั้นจึงเป็นประโยชน์จริงๆ สำหรับการทดสอบ แต่เสมอ 230 00:11:46,630 --> 00:11:50,090 ให้แน่ใจว่าจะเอามันออกไปก่อน คุณเผยแพร่อะไรออนไลน์ 231 00:11:50,090 --> 00:11:56,640 >> ดังนั้นเมื่อคุณกำลังใช้บางสิ่งบางอย่าง เช่น PHP มีความคิดนี้ 232 00:11:56,640 --> 00:11:58,920 ที่คุณสามารถผ่าน ข้อมูลระหว่างหน้าเว็บ 233 00:11:58,920 --> 00:12:03,620 โดยการใส่ข้อมูลที่เป็นจริง ใน URL ซึ่งเป็น 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 คุณสามารถระบุว่ามันเป็น int หรือลอยหรือเส้นทาง 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 โดยใช้เพียงแค่โยน แต่บางครั้งถ้า คุณต้องการเพื่อให้แน่ใจว่ามันเป็น int ที่ 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 กระติกน้ำ, app = ขวด (_NAME_) และจากนั้นจะทำงานในตอนท้าย 258 00:13:25,030 --> 00:13:28,050 เรามีทั้งสองแตกต่างกัน เส้นทางตัวแปรที่นี่ 259 00:13:28,050 --> 00:13:29,900 และคนแรกคือ คนที่ฉันพบ 260 00:13:29,900 --> 00:13:34,230 ในสไลด์ซึ่งเป็นที่ ก็ใช้เวลาเพียงในนามสตริง 261 00:13:34,230 --> 00:13:35,650 และมันจะพิมพ์ออกมาสวัสดีชื่อ 262 00:13:35,650 --> 00:13:41,410 >> แล้วที่สอง หนึ่งใช้การแปลง 263 00:13:41,410 --> 00:13:44,690 ดังนั้นนี่จะแปลงเป็น ไปยัง int แล้วสองครั้ง int ที่ 264 00:13:44,690 --> 00:13:46,150 และพิมพ์ออกมา 265 00:13:46,150 --> 00:13:48,220 และเราไม่ได้ทำเรียงลำดับใด ๆ ของการแปลงที่อยู่ภายใน 266 00:13:48,220 --> 00:13:49,594 เพราะขวดดูแลว่า 267 00:13:49,594 --> 00:13:53,181 จึงขอได้ทำงานนี้ 268 00:13:53,181 --> 00:13:54,930 เมื่อคุณมีขวด การทำงานของโปรแกรมประยุกต์ 269 00:13:54,930 --> 00:13:58,440 คุณสามารถควบคุม-C ออกมาจากมัน ที่จะหยุดการทำงานของเซิร์ฟเวอร์ 270 00:13:58,440 --> 00:14:02,420 แล้วฉันจะทำงานตัวแปร 271 00:14:02,420 --> 00:14:11,740 >> ถ้าอย่างนั้นเราไปที่ localhost / ทักทาย / เอสราและ หวังว่านี้จะกล่าวทักทายกับผม 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 >> เราจริงจะกลับมา สตริง HTM​​L ที่แท้จริง 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 ติดตั้งเมื่อคุณติดตั้ง PIP กระติกน้ำเรียกว่าจินซึ่ง 299 00:15:38,620 --> 00:15:40,885 ช่วยให้คุณสามารถเพิ่มเหล่านี้ คำอธิบายประกอบกับ HTML 300 00:15:40,885 --> 00:15:45,140 ที่คุณเห็นบนหน้าจอที่ช่วยให้ ที่คุณใส่ในสิ่งที่ต้องการเงื่อนไข, 301 00:15:45,140 --> 00:15:47,230 และลูปเข้ามาในรูปแบบ HTML 302 00:15:47,230 --> 00:15:51,140 >> ดังนั้นมันก็ดูนิด ๆ หน่อย ๆ เช่นวิธีการที่คุณ อาจใช้ PHP ภายในไฟล์ HTML, 303 00:15:51,140 --> 00:15:57,380 แต่นี้เป็นเพียงเมื่อขวด เซิร์ฟเวอร์ให้บริการขึ้นไฟล์ HTML, 304 00:15:57,380 --> 00:16:01,610 มันจะทำงานเครื่องยนต์แม่แบบนี้และ แยกผ่านสิ่งนี้และปฏิบัติตาม 305 00:16:01,610 --> 00:16:06,650 ดังนั้นขวดมีฟังก์ชั่ render_template ที่คุณสามารถดูที่ด้านล่างนี่ 306 00:16:06,650 --> 00:16:14,300 ดังนั้นเมื่อคุณเยี่ยมชมหน้านี้ก็ จะทำให้แม่แบบ hello.html นี้ 307 00:16:14,300 --> 00:16:16,407 แล้วกรอกข้อมูลในเพจ HTML นี้ 308 00:16:16,407 --> 00:16:18,990 ดังนั้นขอเพียงแค่เรียกใช้จริง อย่างรวดเร็วและดูสิ่งที่ดูเหมือนว่า 309 00:16:18,990 --> 00:16:21,198 แล้วฉันจะไปผ่าน นิด ๆ หน่อย ๆ ในรายละเอียดเพิ่มเติม 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 ดังนั้นแม่แบบของคุณจะ ที่จะไปอยู่ในโฟลเดอร์แม่แบบ 312 00:16:30,260 --> 00:16:33,980 โดยอัตโนมัติจะมองภายใน แม่แบบโฟลเดอร์แม่แบบที่ 313 00:16:33,980 --> 00:16:35,615 ดังนั้นขอเปิดขึ้นนี้ 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 ดังนั้นผมจะใช้ตัวอย่าง 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 ดังนั้นมันก็บอกว่า Hello World 323 00:17:15,220 --> 00:17:17,678 ผมไม่ได้ส่งชื่อและ มันเต็มไปโดยอัตโนมัติ 324 00:17:17,678 --> 00:17:22,050 ดังนั้นเรามาดูวิธีการที่จะทำอย่างนั้นและวิธีการ เราสามารถกำจัดปะรำว่าบางที 325 00:17:22,050 --> 00:17:26,240 >> ดังนั้นที่นี่นี่คือการจัดเรียงของ ตัวอย่างที่น่าสนใจของ 326 00:17:26,240 --> 00:17:29,101 ถ้าคุณมีความคุ้นเคยกับวิธีการที่สวิทช์ งบทำงานในภาษา 327 00:17:29,101 --> 00:17:31,350 พูดแบบนี้คือการจัดเรียงของชอบ การจัดเรียงของฤดูใบไม้ร่วงที่ผ่านนั้น 328 00:17:31,350 --> 00:17:34,266 ที่คุณจริงที่แนบมาสอง เส้นทางที่แตกต่างกันเพื่อฟังก์ชั่นเดียวกัน 329 00:17:34,266 --> 00:17:41,190 ดังนั้นเราจึงแนบ / สวัสดีเส้นทางและ / การทักทาย / เส้นทางชื่อสวัสดี 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 SQLite 3 385 00:20:33,040 --> 00:20:38,454 คุณก็สามารถนำเข้าข้อมูล SQLite 3 ดำเนินการสอบถาม SQL โดยตรง 386 00:20:38,454 --> 00:20:40,870 แต่ฉันไม่ทราบเกี่ยวกับคุณ แต่ผมไม่ชอบเพียง 387 00:20:40,870 --> 00:20:42,750 เขียนออกแบบสอบถาม SQL 388 00:20:42,750 --> 00:20:45,350 มันมีแนวโน้มที่จะได้รับจริงๆ ยาวและซับซ้อน 389 00:20:45,350 --> 00:20:49,180 >> ดังนั้นสิ่งที่ ผมชอบที่จะใช้เป็นสิ่งที่ 390 00:20:49,180 --> 00:20:53,610 ที่รู้จักกันเป็นออมซึ่งเป็น การทำแผนที่วัตถุสัมพันธ์ 391 00:20:53,610 --> 00:20:56,890 และจุดที่ การทำแผนที่วัตถุสัมพันธ์ 392 00:20:56,890 --> 00:21:00,100 คือว่ามีสองที่แตกต่างกัน วิธีที่คุณสามารถคิดเกี่ยวกับฐานข้อมูล 393 00:21:00,100 --> 00:21:03,240 >> ดังนั้นตัวอย่างที่ ศาสตราจารย์ลันมักจะ 394 00:21:03,240 --> 00:21:07,660 ใช้ในชั้นเรียนเป็นตาราง Excel ที่ คุณมีแถวและคอลัมน์เหล่านี้เหล่านี้ 395 00:21:07,660 --> 00:21:10,210 และที่มีประโยชน์จริงๆสำหรับ วิธีการที่จะเป็นตัวแทนใน SQL 396 00:21:10,210 --> 00:21:13,170 และวิธีที่คุณโต้ตอบกับมัน แต่ วิธีการที่จะเป็นจริงอีก 397 00:21:13,170 --> 00:21:16,390 ประโยชน์ที่จะคิดเกี่ยวกับมันบางครั้ง คือในแง่ของการเรียนและวัตถุ 398 00:21:16,390 --> 00:21:20,420 >> ดังนั้นแทนที่จะคิด ของแต่ละตารางมี 399 00:21:20,420 --> 00:21:23,040 แถวที่มีบางนี้ ข้อมูลที่คุณสามารถจริง 400 00:21:23,040 --> 00:21:26,100 คิดว่ามันเป็น แต่ละตารางเป็นชั้นเรียน 401 00:21:26,100 --> 00:21:29,810 แล้วทุกกรณีของ ระดับมีคุณสมบัติบางอย่าง 402 00:21:29,810 --> 00:21:35,110 ดังนั้นในตัวอย่างนี้กรณีของ ชั้นเป็นแถวในตาราง 403 00:21:35,110 --> 00:21:37,490 แล้วแต่ละสถานที่ให้บริการจะ เป็นคอลัมน์ในตาราง 404 00:21:37,490 --> 00:21:40,840 >> ดังนั้นออมที่ผมชอบ ที่จะใช้เรียกว่าแคระ 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 หนึ่งที่เป็นที่นิยมมากขึ้น ที่รู้จักกันเป็น SQLAlchem​​y, 409 00:21:52,180 --> 00:21:56,050 และผมจำไม่ได้ว่าทำไมฉันเดิม เลือกแคระมากกว่า SQLAlchem​​y, 410 00:21:56,050 --> 00:21:58,311 หรือฉันจะบอกคุณว่าทำไมฉัน คิดว่ามันเป็นหนึ่งในที่ดีที่สุด 411 00:21:58,311 --> 00:22:01,060 แต่เรากำลังจะใช้นี้ เพราะฉันรู้ว่าวิธีการใช้งาน 412 00:22:01,060 --> 00:22:04,760 >> ดังนั้นหนึ่งคำถามคือทำไม คุณควรรำคาญใช้ออม, 413 00:22:04,760 --> 00:22:07,552 แทนเพียงโดยตรง การเขียนคำสั่ง SQL? 414 00:22:07,552 --> 00:22:09,760 และผมคิดว่ากรณีที่ดีที่สุด คือการที่คุณทำไม่ได้จริง 415 00:22:09,760 --> 00:22:11,356 ต้องเขียนคำสั่ง SQL 416 00:22:11,356 --> 00:22:14,480 มันง่ายมากที่ผมจะแสดงให้คุณเพื่อ ทำสิ่งที่ต้องการเลือกแทรก 417 00:22:14,480 --> 00:22:16,157 การลบโดยเฉพาะอย่างยิ่งการสร้างตาราง 418 00:22:16,157 --> 00:22:17,990 มันง่ายมากที่จะ เขียนโครงสร้างชั้นเรียน 419 00:22:17,990 --> 00:22:22,250 กว่าก็คือการสร้างโครงสร้าง ตารางคำสั่ง แต่สิ่งหนึ่งที่ 420 00:22:22,250 --> 00:22:25,710 ที่จะตระหนักถึงก็คือว่า ออมจะพยายามที่ดีที่สุด 421 00:22:25,710 --> 00:22:28,640 จะคิดออกว่ามากที่สุด แบบสอบถามที่มีประสิทธิภาพ SQL จะเป็น 422 00:22:28,640 --> 00:22:30,110 แต่บางครั้งที่จะได้รับมันผิด 423 00:22:30,110 --> 00:22:32,660 >> และโดยเฉพาะอย่างยิ่งถ้าคุณอยู่ การทำงานร่วมกับฐานข้อมูลขนาดใหญ่ 424 00:22:32,660 --> 00:22:35,557 คุณสามารถสังเกตเห็นว่าแบบสอบถาม ที่ควรจะทำงานได้อย่างรวดเร็ว, 425 00:22:35,557 --> 00:22:36,640 เป็นจริงใช้เวลานาน 426 00:22:36,640 --> 00:22:40,164 และถ้าคุณมองภายใต้ประทุนที่วิธีการ ออมที่มีการตีความที่เป็น SQL, 427 00:22:40,164 --> 00:22:42,080 มันอาจจะทำอะไรบางอย่าง ไร้สาระจริงๆ 428 00:22:42,080 --> 00:22:44,371 เพียงเพราะการจัดเรียงของ ชี้ความตั้งใจของคุณที่ไม่ถูกต้อง 429 00:22:44,371 --> 00:22:48,080 และมีหลายครั้งที่ ฉันเคยที่จะแทนที่มันและเพียง 430 00:22:48,080 --> 00:22:52,429 ดำเนินการแบบสอบถาม SQL ของตัวเองเพียง เพราะมันถูกแยกในทางที่แปลก 431 00:22:52,429 --> 00:22:54,220 จึงมีบางอย่าง ค่าใช้จ่ายเพียงในทาง 432 00:22:54,220 --> 00:22:58,680 ว่ามันรวบรวมของคุณ งบลงไปใน SQL 433 00:22:58,680 --> 00:23:06,200 >> ดังนั้นเราลองมาดูสุดได้อย่างรวดเร็วที่ ตัวอย่างง่ายๆของรูปแบบข้อมูล 434 00:23:06,200 --> 00:23:07,350 ที่คุณอาจใช้ 435 00:23:07,350 --> 00:23:11,880 ดังนั้นนี้เป็นรหัส Python, และอื่น ๆ สิ่งแรกที่คุณต้องการจะทำคือจาก 436 00:23:11,880 --> 00:23:12,950 นำเข้าแคระ * 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 >> ดังนั้นทุกรูปแบบของคุณควร ได้รับมรดกเป็น superclass สูงสุดของพวกเขา 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 เป็นสิ่งที่มีให้ โดยแคระชื่อเป็น 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 และนี่คือสิ่งที่ ที่จำเป็นโดยแคระ 467 00:24:43,920 --> 00:24:47,250 ดังนั้น Meta ระดับนี้คุณมี เพื่อระบุว่าฐานข้อมูลเป็น 468 00:24:47,250 --> 00:24:49,830 เท่ากับวัตถุ ที่เราสร้างขึ้นดังกล่าวข้างต้น 469 00:24:49,830 --> 00:24:54,339 และนี่กล่าวว่าสิ่งที่ไฟล์ตารางนี้ จริงจะได้รับการบรรจุอยู่ใน 470 00:24:54,339 --> 00:24:57,130 ดังนั้นนี่คือสิ่งที่คุณมี ที่จะทำภายในทั้งหมดของโมเดลของคุณ 471 00:24:57,130 --> 00:24:59,380 คุณเพียงแค่ต้องระบุ ภายในชั้นเรียน Meta นี้ 472 00:24:59,380 --> 00:25:01,400 ฐานข้อมูลที่เท่ากับ 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 แล้วฉันจะได้ไม่ต้องกังวล เกี่ยวกับการตั้งชั้น Meta 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 และแล้วสิ่งที่สำคัญคือการ ระบุปลอดภัย = True เวลามากที่สุด 503 00:26:28,070 --> 00:26:30,380 ดังนั้นสิ่งที่คำสั่งนี้ จะทำก็คือว่ามัน 504 00:26:30,380 --> 00:26:33,580 สร้างตารางสำหรับ รูปแบบของนักเรียน แต่เพียง 505 00:26:33,580 --> 00:26:36,109 ถ้าตารางที่มีไม่ได้ ถูกสร้างขึ้นแล้ว 506 00:26:36,109 --> 00:26:37,400 นั่นคือสิ่งที่ระบุปลอดภัย 507 00:26:37,400 --> 00:26:39,150 ดังนั้นมันจะไม่เขียนทับ ตารางที่มีอยู่ของคุณ 508 00:26:39,150 --> 00:26:41,525 มันจะสร้างใหม่ ตารางถ้ามีไม่ได้เป็นหนึ่งมี 509 00:26:41,525 --> 00:26:45,090 ดังนั้นคุณก็สามารถสร้าง ตารางที่ครั้งหนึ่งเคยใช้ SQL 510 00:26:45,090 --> 00:26:49,410 แล้วต้องนั่งฐานข้อมูลนั้น ที่นั่นแล้วเชื่อมต่อกับแต่ละครั้ง 511 00:26:49,410 --> 00:26:52,450 แต่ก็มักจะมีความสุขเพียงเพื่อ ใส่ในโทร create_tables นี้ 512 00:26:52,450 --> 00:26:55,550 เพื่อที่ว่าถ้าคุณเคยลบของคุณ ฐานข้อมูลเมื่อคุณเรียกใช้เว็บของคุณ 513 00:26:55,550 --> 00:26:57,960 การตรวจสอบอีกครั้งก็จะสร้างมัน 514 00:26:57,960 --> 00:27:00,730 >> ดังนั้นเพียงแค่ให้แน่ใจว่าปลอดภัย มีการระบุที่จะเป็นจริง 515 00:27:00,730 --> 00:27:03,580 หรือคุณจะพบข้อมูลของคุณเพียง ได้รับ 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 >> ขอให้สังเกตว่าฉันไม่ได้ ต้องระบุ ID ที่ 536 00:28:03,050 --> 00:28:09,340 เพราะเนื่องจากเป็น PrimaryKeyField ก็จะทำงานโดยอัตโนมัติ 537 00:28:09,340 --> 00:28:10,930 เพิ่มขึ้นได้ถ้าคุณไม่ได้ระบุว่า 538 00:28:10,930 --> 00:28:12,250 และในความเป็นจริงคุณอาจ ไม่ควรระบุว่า 539 00:28:12,250 --> 00:28:14,810 เพราะคุณอาจจะไม่ได้ตั้งใจ บังคับ 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 เพียงแค่ใช้งูหลามปกติ 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 แต่ในกรณีนี้เป็นพิเศษ เพียงวิธีแคระไม่มัน 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 กับประเภทของ iterator ใด ๆ หรือมีการจัดเรียงของอาร์เรย์ใด ๆ 571 00:29:44,500 --> 00:29:46,333 เพื่อให้คุณสามารถทำสำหรับ s ใน student.select (). Whe 572 00:29:46,333 --> 00:29:52,930 อีกครั้ง (Student.grade <75) และอื่น ๆ นี้จะ ย้ำกว่านักเรียนในตารางแต่ละ 573 00:29:52,930 --> 00:29:56,260 ชั้นประถมศึกษาปีที่มีน้อยกว่า 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 ฐานข้อมูลที่เป็นฐานข้อมูลที่ วัตถุที่เรามีมาก่อน 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 และคนแคระด้วยกัน และทำให้ app ง่าย 605 00:31:33,685 --> 00:31:38,680 ผมเรียกมันว่าพูดจาโผงผาง CS50 และก็ การเรียงลำดับของบล็อกแพลตฟอร์มที่เรียบง่าย 606 00:31:38,680 --> 00:31:41,150 >> ดังนั้นก่อนที่ฉันจะเรียกใช้และ แสดงสิ่งที่ดูเหมือนว่า 607 00:31:41,150 --> 00:31:42,890 และจากนั้นเราสามารถมองมากยิ่งขึ้นในรหัส 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 เอาล่ะเพื่อให้เพียงทำงานนี้ 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 ในไฟล์ 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 และก็จะมีอีกครั้งที่ 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 และมันจะโดยอัตโนมัติ ทำให้มันเป็น 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 สาขาที่แตกต่างเหล่านี้ถ้าคุณ ดูเอกสารแคระ, 650 00:34:24,864 --> 00:34:28,920 มันจะให้รายการของที่แตกต่างกัน ชนิดของเขตข้อมูลที่คุณสามารถใช้ 651 00:34:28,920 --> 00:34:34,440 ส่วนใหญ่ก็คล้าย กับสิ่งที่คุณจะได้เห็นใน SQL 652 00:34:34,440 --> 00:34:37,699 จึงมี CharField เป็น VarCharFields, กรอบข้อความ, 653 00:34:37,699 --> 00:34:40,550 ซึ่งนานมาก ตำราเช่นบล็อกโพสต์ 654 00:34:40,550 --> 00:34:44,460 ที่อาจเกิดขึ้น DateTimeFields, DoubleFields, FloatFields, 655 00:34:44,460 --> 00:34:46,100 ทุกสิ่งที่ต้องการที่ 656 00:34:46,100 --> 00:34:51,570 >> และคุณสามารถส่งผ่านในการขัดแย้งอื่น ๆ มันซึ่งผมไม่ได้ระบุที่นี่ 657 00:34:51,570 --> 00:34:55,719 กล่าวว่าสำหรับตัวอย่างเช่นคุณไม่ต้องการที่จะ ช่วยให้สองโพสต์ที่จะมีชื่อเดียวกัน 658 00:34:55,719 --> 00:34:59,672 คุณสามารถระบุ สิ่งที่ต้องการที่ไม่ซ้ำกัน = ทรู 659 00:34:59,672 --> 00:35:02,880 และนั่นเป็นเพียงพารามิเตอร์พิเศษในการ สนามว่าเมื่อมันรวบรวมมันลง 660 00:35:02,880 --> 00:35:06,865 ลงใน SQL ก็จะระบุ ว่ามันจะต้องมีเอกลักษณ์ 661 00:35:06,865 --> 00:35:09,740 นอกจากนี้คุณยังสามารถระบุสิ่งที่ต้องการ ไม่เป็นโมฆะและทุกสิ่งอื่น ๆ 662 00:35:09,740 --> 00:35:11,750 คุณทำตามปกติใน SQL 663 00:35:11,750 --> 00:35:16,020 ดังนั้นนี้เป็นวิธีที่ง่ายสวย รูปแบบที่มีวันที่ 664 00:35:16,020 --> 00:35:19,460 ขอให้สังเกตที่นี่ภายใน DateTimeField ที่ ระบุสิ่งที่ผมเริ่มต้นคือ 665 00:35:19,460 --> 00:35:22,560 ฉันที่กำหนดให้เป็น datetime.datetime.now, 666 00:35:22,560 --> 00:35:24,920 เพราะวิธีการที่ นี้ได้รับการประเมิน 667 00:35:24,920 --> 00:35:28,750 มันจริงประเมิน DateTime.Now เมื่อ 668 00:35:28,750 --> 00:35:32,110 จะได้รับการใส่เข้าไปในฐานข้อมูล 669 00:35:32,110 --> 00:35:34,760 >> ผมคิดว่าผมมี เพื่อตรวจสอบนี้ 670 00:35:34,760 --> 00:35:38,222 แต่ถ้าคุณไม่ได้ทำอะไรเช่นนี้แล้ว มันจริงจะประเมินว่าครั้งเดียว 671 00:35:38,222 --> 00:35:40,180 และแล้ววันที่และเวลา มักจะเป็นแบบเดียวกัน 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 >> แล้วเรามี Meta นี้ รองที่เพียงแค่ 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 ที่เรากำลังจะไป ใช้จาก app หลักของเรา 686 00:36:18,120 --> 00:36:23,970 ในการเริ่มต้นฐานข้อมูลเพื่อเชื่อมต่อกับ และจากนั้นในการสร้างตารางโพสต์ 687 00:36:23,970 --> 00:36:26,880 >> ตอนนี้ให้ดูที่ app หลักของตัวเอง 688 00:36:26,880 --> 00:36:30,800 ดังนั้นหนึ่งนี้ค่อนข้าง อีกนานกว่าคนที่ 689 00:36:30,800 --> 00:36:34,840 ที่เราได้เห็นมาก่อน แต่หวังว่าไม่เลวร้ายเกินไป 690 00:36:34,840 --> 00:36:37,140 ดังนั้นให้ฉันขยายออกไปนี้ 691 00:36:37,140 --> 00:36:38,370 เอาล่ะ 692 00:36:38,370 --> 00:36:42,070 >> ดังนั้นสังเกตและด้านบนที่ผมนำเข้า ทั้งกลุ่มของสิ่งอื่น ๆ 693 00:36:42,070 --> 00:36:44,129 จากขวดที่เรายังไม่ได้ ก่อนที่จะเห็นจริงๆ 694 00:36:44,129 --> 00:36:46,670 และหวังว่าเราสามารถไปถึง แต่ละคนเหล่านี้โดยหนึ่ง 695 00:36:46,670 --> 00:36:49,420 และพูดคุยเล็ก ๆ น้อย ๆ เพิ่มเติมเกี่ยวกับ พวกเขาเรียงตามตัวอย่าง 696 00:36:49,420 --> 00:36:51,380 ดังนั้นเรามีขวดที่ และ render_template ที่ 697 00:36:51,380 --> 00:36:54,370 ที่เราเคยเห็นมาก่อน วัตถุคำขอนี้ 698 00:36:54,370 --> 00:37:00,400 ซึ่งจะเกิดขึ้นเมื่อเราดูที่วิธีการ รูปแบบที่ผมแสดงให้เห็นจริง 699 00:37:00,400 --> 00:37:01,170 งาน 700 00:37:01,170 --> 00:37:04,850 เปลี่ยนเส้นทางซึ่งช่วยให้คุณเปลี่ยนเส้นทาง กลับมาจากการสร้างโพสต์ใหม่ 701 00:37:04,850 --> 00:37:11,710 กลับไปที่หน้าแรกของเดิมแล้ว URL ซึ่งเป็นสิ่งที่ช่วยให้คุณ 702 00:37:11,710 --> 00:37:15,550 คิดออกว่าใน เว็บไซต์หน้าโดยเฉพาะอย่างยิ่งคือ 703 00:37:15,550 --> 00:37:17,810 >> ดังนั้นแล้วต่อไป สิ่งที่ผมทำคือผมนำเข้า 704 00:37:17,810 --> 00:37:21,550 ข้อมูลทั้งหมดจากรุ่นที่ ไฟล์ที่เราเป็นเพียงแค่การมองหาที่ 705 00:37:21,550 --> 00:37:23,140 และใช่ 706 00:37:23,140 --> 00:37:28,720 >> ดังนั้นสิ่งอื่นที่มาใหม่ ขึ้นเมื่อคุณจัดการกับ 707 00:37:28,720 --> 00:37:31,850 โดยเฉพาะอย่างยิ่งฐานข้อมูล คือการที่คุณสามารถระบุ 708 00:37:31,850 --> 00:37:35,110 ฟังก์ชั่นที่ได้รับการเรียกว่าก่อน ทุกคำขอและฟังก์ชั่นที่ได้รับ 709 00:37:35,110 --> 00:37:39,690 เรียกว่าหลังจากที่ขอทุกการใช้นี้ ฟังก์ชั่นการร้องขอ app.before มัณฑนากร 710 00:37:39,690 --> 00:37:42,324 >> และอื่น ๆ นี้จะได้รับการดำเนินการ ที่ใดก็ตามที่ฟังก์ชั่นนี้ 711 00:37:42,324 --> 00:37:44,240 นี้ไม่จำเป็นต้องเป็น เรียกว่าก่อนที่จะมีการร้องขอ 712 00:37:44,240 --> 00:37:46,281 แต่มักจะเป็นสิ่งที่ เหมาะสมที่จะเรียกมันว่า 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 คุณสามารถระบุสิ่งที่ฟังก์ชั่น คุณต้องการที่จะได้รับการเรียกที่นั่น 715 00:37:51,650 --> 00:37:56,330 ดังนั้นผมจึงระบุ initialize_db นี้ ฟังก์ชั่นที่เราได้กลับมาอยู่ในโมเดล 716 00:37:56,330 --> 00:38:02,390 ไฟล์ดังนั้นก่อนการร้องขอทุกท่าน ต้องการที่จะเชื่อมต่อกับฐานข้อมูล 717 00:38:02,390 --> 00:38:04,560 >> มีสองที่แตกต่างกัน วิธีที่คุณสามารถทำเช่นนี้ 718 00:38:04,560 --> 00:38:10,830 คุณสามารถทำเช่น @app. ฉัน เชื่อว่ามันเป็น after_request 719 00:38:10,830 --> 00:38:13,800 และความแตกต่างระหว่าง after_request และ teardown_request, 720 00:38:13,800 --> 00:38:17,590 คือว่า after_request จะเกิดขึ้น ถ้าขอจริงเป็นสิ่งถูกต้อง 721 00:38:17,590 --> 00:38:20,440 ดังนั้นเฉพาะในกรณีที่ คำขอที่ประสบความสำเร็จ 722 00:38:20,440 --> 00:38:22,490 ถ้าไม่มีอะไรผิดพลาด แต่ teardown_request 723 00:38:22,490 --> 00:38:26,300 ที่เกิดขึ้นในกรณีที่ประสบความสำเร็จ ร้องขอหรือในกรณีของข้อผิดพลาด 724 00:38:26,300 --> 00:38:28,252 >> ดังนั้นโดยปกติคุณต้องการ ใช้ teardown_request, 725 00:38:28,252 --> 00:38:30,460 ถ้าคุณต้องการที่จะทำ บางสิ่งบางอย่างที่แตกต่างกันโดยเฉพาะอย่างยิ่ง 726 00:38:30,460 --> 00:38:31,470 ในกรณีที่มีข้อผิดพลาด 727 00:38:31,470 --> 00:38:35,122 แต่สำหรับการปิดฐานข้อมูล ไม่ว่าจะประสบความสำเร็จหรือถ้ามันล้มเหลว 728 00:38:35,122 --> 00:38:37,080 เราทำคุณต้องการที่จะตัดการเชื่อมต่อ จากฐานข้อมูล 729 00:38:37,080 --> 00:38:41,240 ดังนั้นจึงเรียกว่า db.close บนวัตถุฐานข้อมูล 730 00:38:41,240 --> 00:38:43,740 >> ขอให้สังเกตว่า teardown_request ใช้เวลาในการยกเว้น 731 00:38:43,740 --> 00:38:46,781 เพื่อให้คุณสามารถตรวจสอบว่ามีจริง ข้อผิดพลาดเมื่อมันถูกปิดลง 732 00:38:46,781 --> 00:38:49,390 แต่ที่นี่หวังว่ามี ไม่ได้เป็นจำนวนมากทั้งจากข้อผิดพลาด 733 00:38:49,390 --> 00:38:52,720 ดังนั้นเราเพียงแค่การจัดเรียงของที่ไม่สนใจ 734 00:38:52,720 --> 00:38:55,990 >> เอาล่ะและส่วนที่เหลือของมันไม่ได้เลวร้ายเกินไป 735 00:38:55,990 --> 00:39:02,240 ดังนั้นเมื่อเราไปที่หน้าบ้าน เรากลายเป็นแม่แบบ home.html นี้ 736 00:39:02,240 --> 00:39:03,490 ที่จะเปิดขึ้น 737 00:39:03,490 --> 00:39:06,240 ผ่านอยู่ในโพสต์ เท่ากับและสิ่งนี้ 738 00:39:06,240 --> 00:39:10,260 ไม่คือจำได้ว่าเรามีการโพสต์นี้ รูปแบบดังนั้นเราจึงเลือกโพสต์ทั้งหมด 739 00:39:10,260 --> 00:39:13,890 แล้วสิ่งที่คุณสามารถทำได้อีก คุณสามารถระบุคำสั่ง 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 หรือเกี่ยวกับการห่วงคุณ ใช้วงเล็บเปอร์เซ็นต์ 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-- เพื่อให้ที่นี่ให้ ผมดึง HTM​​L ถัดไปเพียง 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 แต่ที่จริงผลตอบแทนของ HTM​​L คุณต้องการที่จะดำเนินการเปลี่ยนเส้นทางที่ 882 00:47:30,270 --> 00:47:34,430 883 00:47:34,430 --> 00:47:37,110 กลับไปที่หน้าบ้าน 884 00:47:37,110 --> 00:47:39,200 ดังนั้นเราจึงมีสองมุมมองที่แตกต่างกัน 885 00:47:39,200 --> 00:47:40,132 เรามีมุมมองที่บ้าน 886 00:47:40,132 --> 00:47:41,590 หรือผมคิดว่าผมควรจะพูดว่าแม่ 887 00:47:41,590 --> 00:47:44,190 เรามีทั้งสองแม่แบบ แม่แบบของบ้านที่ 888 00:47:44,190 --> 00:47:48,500 แสดงทั้งหมดจากการโพสของเราและ แล้วเรามีสิ่งที่โฆษณานี้ 889 00:47:48,500 --> 00:47:52,970 และเมื่อคุณคลิกโพสต์มันไป ที่จะเป็นเส้นทางใหม่ภายในขวดที่ 890 00:47:52,970 --> 00:47:55,920 แต่เส้นทางที่ไม่จำเป็นต้อง มีแม่แบบที่สอดคล้องกัน 891 00:47:55,920 --> 00:47:59,290 892 00:47:59,290 --> 00:48:01,560 คุณไม่ต้องดู อะไร แต่คุณยังสามารถ 893 00:48:01,560 --> 00:48:04,090 มีการทำงานที่เกิดขึ้นนี้ ในเบื้องหลัง 894 00:48:04,090 --> 00:48:07,450 แล้วคุณจะได้รับการเปลี่ยนเส้นทาง กลับไปที่หน้าบ้าน 895 00:48:07,450 --> 00:48:12,230 และแน่นอนมันเป็นเรื่องง่ายที่จะทำงาน ในบาง CSS ดีกว่าลงในแม่แบบ 896 00:48:12,230 --> 00:48:15,580 และทำให้ดูมากดีกว่าที่ แต่ทั้งหมดของตรรกะหลัก 897 00:48:15,580 --> 00:48:18,590 จะมีในหลาม 898 00:48:18,590 --> 00:48:20,020 >> คำถามใด ๆ เกี่ยวกับตัวอย่างที่? 899 00:48:20,020 --> 00:48:22,760 ฉันรู้ว่ามีจำนวนมาก สิ่งที่แตกต่างที่เกิดขึ้นที่นั่น 900 00:48:22,760 --> 00:48:25,341 หลายสิ่งหลายอย่างที่เราไม่เคยเห็น ก่อน แต่ชอบอะไร 901 00:48:25,341 --> 00:48:25,840 ใช่. 902 00:48:25,840 --> 00:48:28,346 >> ผู้ชม 1: คุณต้องทำอะไร พิเศษในการขัดข้อมูลที่เป็น 903 00:48:28,346 --> 00:48:29,600 มาจากรูปแบบหรือไม่ 904 00:48:29,600 --> 00:48:31,109 ผมสังเกตเห็นคุณเพียงแค่บอกว่า "สร้าง" 905 00:48:31,109 --> 00:48:33,900 EZRA ZIGMOND: ใช่เพื่อให้เป็น จริงที่เป็นจุดที่ดีจริงๆ 906 00:48:33,900 --> 00:48:36,350 ดังนั้นคำถามคือคุณ ต้องตรวจสอบและให้แน่ใจว่า 907 00:48:36,350 --> 00:48:39,190 ว่าข้อมูลที่ถูกต้องและ ทำเรียงลำดับของการขัดถูใด ๆ 908 00:48:39,190 --> 00:48:41,840 เพื่อให้แน่ใจว่ามันเป็นสิ่งที่ถูกต้อง เพราะในขณะที่คุณสามารถดูที่นี่ 909 00:48:41,840 --> 00:48:42,660 ฉันไม่ได้ทำอย่างนั้น 910 00:48:42,660 --> 00:48:48,140 ดังนั้นเรามาดูสิ่งที่เกิดขึ้น ถ้าผมโพสต์สิ่งว่างเปล่า 911 00:48:48,140 --> 00:48:51,190 ดังนั้นมันจะจริงเพียงทำให้ โพสต์ว่างเปล่าและกรอกแบบ DateTime 912 00:48:51,190 --> 00:48:55,990 >> ดังนั้นในความเป็นจริงคุณอาจจะ ต้องการที่จะทำอะไรบางอย่างเช่น 913 00:48:55,990 --> 00:49:04,749 อาจจะระบุชื่อถ้าจะมีค่าเท่ากับ สตริงที่ว่างเปล่าแล้วไม่ทำเช่นนี้ 914 00:49:04,749 --> 00:49:07,290 หรือเพียง แต่ทำมันถ้าชื่อเป็น ไม่เท่ากับสตริงที่ว่างเปล่า 915 00:49:07,290 --> 00:49:10,330 ดังนั้นมันไม่ได้จริงโดยอัตโนมัติ ดูแลที่ขัด 916 00:49:10,330 --> 00:49:12,820 สำหรับคุณเพื่อให้คุณยังคงต้องทำอย่างนั้น 917 00:49:12,820 --> 00:49:14,330 ใช่คำถามที่ดี 918 00:49:14,330 --> 00:49:18,497 >> ผู้ชมที่ 2: มันไม่ขัด สำหรับการฉีดสืบเนื่อง? 919 00:49:18,497 --> 00:49:19,890 คุณรู้หรือไม่? 920 00:49:19,890 --> 00:49:22,830 >> EZRA ZIGMOND: หวังว่า ไม่ว่าแคระ 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 injection, บางสิ่งบางอย่างเช่นนี้ถ้านี้ 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 >> 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 แต่ฉันคิดว่าคนแคระ หวังว่าจะไม่ทำ 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 >> EZRA ZIGMOND: ใช่ 955 00:51:02,904 --> 00:51:06,070 ผู้ชม 2: เริ่มต้นกับคนแคระที่ หรือเป็นที่สิ่งที่คุณสามารถเปลี่ยน? 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 ซึ่งผมคิดว่าถ้าคุณต้องการที่จะใช้มัน ใน IDE ที่ฉันไม่ได้พยายามออกนี้ 967 00:51:36,130 --> 00:51:38,527 แต่ผมคิดว่าถ้าคุณ วิ่งบนพอร์ต 8080 968 00:51:38,527 --> 00:51:40,360 คุณอาจจะสามารถ ในการเข้าถึงเซิร์ฟเวอร์ 969 00:51:40,360 --> 00:51:41,870 เช่นเดียวกับคุณสำหรับเว็บไซต์ 970 00:51:41,870 --> 00:51:44,390 >> ใช่ แต่มันเป็นเรื่องง่าย การเปลี่ยนแปลงที่ว่าถ้าคุณ 971 00:51:44,390 --> 00:51:48,540 มีการจัดเรียงเช่นการส่งต่อพอร์ตใด ๆ สิ่งที่คุณต้องทำ 972 00:51:48,540 --> 00:51:50,410 >> คำถามใด ๆ อื่น ๆ ? 973 00:51:50,410 --> 00:51:50,916 ใช่? 974 00:51:50,916 --> 00:51:53,416 ผู้ชม 1: ดังนั้นผมเห็นในของคุณ ที่ที่คุณกล่าวถึง 975 00:51:53,416 --> 00:51:55,647 คุณจะต้องระบุ ฐานข้อมูลสำหรับแต่ละวัตถุ 976 00:51:55,647 --> 00:51:58,105 คุณจะรู้ว่าเกิดขึ้นไม่ ที่ทำให้มันง่ายจริงๆถ้าคุณ 977 00:51:58,105 --> 00:52:03,210 มีจำนวนมากของฐานข้อมูล SQLite ที่คุณ ต้องการที่จะใช้สำหรับการตรวจสอบเว็บเดียว 978 00:52:03,210 --> 00:52:07,210 ที่คุณก็สามารถระบุพวง ของคนที่แตกต่างกันในรูปแบบของคุณ? 979 00:52:07,210 --> 00:52:11,620 >> 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 และคนแคระตัวเอง 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 >> คนแคระมีเอกสารและ พวกเขามีการกวดวิชา 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 >> นอกจากนี้ถ้าคุณมี คำถามเกี่ยวกับคนแคระ, 1008 00:53:44,690 --> 00:53:47,530 และคุณโพสต์ไว้ใน StackOverflow, คนที่ทำแคระจริง 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