در این مطلب، ویدئو آموزش Python Flask: برنامه وب با امکانات کامل قسمت 6 – احراز هویت کاربر با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:01,410
سلام، اوضاع چطور است همه در
2
00:00:01,410 –> 00:00:03,149
این ویدیو یاد می گیریم که چگونه
3
00:00:03,149 –> 00:00:04,799
از برنامه خود برای افزودن کاربران به پایگاه داده خود استفاده کنیم
4
00:00:04,799 –> 00:00:06,690
و همچنین چگونه کاربران را احراز هویت
5
00:00:06,690 –> 00:00:09,420
کنیم تا بتوانند از سیستم خارج شوند
6
00:00:09,420 –> 00:00:11,700
و همچنین به زودی قادر به ایجاد پست ها
7
00:00:11,700 –> 00:00:13,259
و مواردی مانند پس بیایید ادامه
8
00:00:13,259 –> 00:00:15,360
دهیم و شروع کنیم، بنابراین در یک ویدیوی قبلی
9
00:00:15,360 –> 00:00:17,880
پایگاه داده خود را ایجاد کردیم و دیدیم که چگونه میتوانیم
10
00:00:17,880 –> 00:00:19,830
به صورت دستی تعدادی کاربر و پست ایجاد کنیم،
11
00:00:19,830 –> 00:00:22,410
اما اکنون بیایید همان منطق را
12
00:00:22,410 –> 00:00:24,570
به برنامه خود اضافه کنیم تا این کاربران را
13
00:00:24,570 –> 00:00:27,000
از طریق فرم ثبت نام
14
00:00:27,000 –> 00:00:29,490
ایجاد کنیم. کاربران ما به
15
00:00:29,490 –> 00:00:31,859
راهی برای هش رمزهای عبور خود نیاز داریم، بنابراین در
16
00:00:31,859 –> 00:00:34,200
ویدیوی قبلی ما از
17
00:00:34,200 –> 00:00:36,450
رمزهای عبور متن ساده برای مثالهای خود استفاده میکردیم، اما شما هرگز
18
00:00:36,450 –> 00:00:37,770
نمیخواهید این کار را با وبسایت واقعی خود انجام دهید،
19
00:00:37,770 –> 00:00:40,320
زیرا اگر کسی قرار بود به پایگاه داده شما دسترسی پیدا
20
00:00:40,320 –> 00:00:42,149
کند. سپس
21
00:00:42,149 –> 00:00:45,030
آنها لاگین برای همه کاربران شما خواهند داشت و
22
00:00:45,030 –> 00:00:46,920
این قطعا چیز خوبی نیست،
23
00:00:46,920 –> 00:00:48,390
بنابراین چندین الگوریتم هشینگ مختلف وجود دارد،
24
00:00:48,390 –> 00:00:50,579
اما یک الگوریتم خوب که می توانیم
25
00:00:50,579 –> 00:00:52,110
از آن استفاده کنیم، bcrypt نام
26
00:00:52,110 –> 00:00:53,850
دارد و یک الگوریتم گسترده وجود دارد. sion for flask که
27
00:00:53,850 –> 00:00:55,860
استفاده از آن را آسان می کند و به
28
00:00:55,860 –> 00:00:57,210
آن flask bcrypt می گویند،
29
00:00:57,210 –> 00:00:59,100
بنابراین بیایید خط فرمان خود را بالا بکشیم و
30
00:00:59,100 –> 00:01:01,199
این را با pip نصب کنیم تا
31
00:01:01,199 –> 00:01:02,820
محیط مجازی من فعال شود و
32
00:01:02,820 –> 00:01:04,589
من اینجا در فهرست پروژه خود هستم و می
33
00:01:04,589 –> 00:01:06,420
خواهم نصب کنم. این فقط با گفتن pip
34
00:01:06,420 –> 00:01:10,680
install و این فلاسک است – crypt باشد،
35
00:01:10,680 –> 00:01:12,750
بیایید آن را نصب کنیم و زمانی که
36
00:01:12,750 –> 00:01:15,299
نصب شد، صفحه نمایشم را اینجا پاک می کنم
37
00:01:15,299 –> 00:01:18,090
و حالا بیایید پایتون را
38
00:01:18,090 –> 00:01:19,950
از خط فرمان خود باز کنیم و ببینیم این چگونه کار می کند
39
00:01:19,950 –> 00:01:22,140
. کلاس bcrypt را
40
00:01:22,140 –> 00:01:24,360
از آن پسوند flask وارد میکنیم، بنابراین
41
00:01:24,360 –> 00:01:28,829
از flask underscore میگویم bcrypt این کلاس bcrypt را وارد کنید
42
00:01:28,829 –> 00:01:31,530
و اکنون
43
00:01:31,530 –> 00:01:33,600
نمونهای از آن کلاس ایجاد میکنیم که میگوید
44
00:01:33,600 –> 00:01:37,259
bcrypt برابر با این کلاس است و آن
45
00:01:37,259 –> 00:01:40,470
پرانتزها را آنجا و اکنون قرار میدهیم. بیایید یک
46
00:01:40,470 –> 00:01:42,899
رمز عبور هش کنیم تا بتوانیم بگوییم crypt باشید و
47
00:01:42,899 –> 00:01:45,329
می توانیم از روش هش رمز عبور
48
00:01:45,329 –> 00:01:48,390
استفاده کنیم و سپس رمز عبور را وارد کنیم و
49
00:01:48,390 –> 00:01:50,189
من فقط یک رمز عبور آزمایشی
50
00:01:50,189 –> 00:01:52,890
را در حال حاضر پاس می کنم و می بینیم که این
51
00:01:52,890 –> 00:01:55,710
یک هش رمز عبور در این ایجاد کرده است. در ابتدا اینجا باشید
52
00:01:55,710 –> 00:01:57,420
به این معنی است که
53
00:01:57,420 –> 00:01:59,700
اکنون در صفحه اسناد برنامههای افزودنی به بایت است،
54
00:01:59,700 –> 00:02:01,680
آنها میگویند اگر یک رشته میخواهید،
55
00:02:01,680 –> 00:02:05,040
میتوانید به سادگی آن را به utf-8 رمزگشایی کنید، بنابراین اگر من
56
00:02:05,040 –> 00:02:08,758
آن رمز عبور هش را دوباره اجرا کنم و
57
00:02:08,758 –> 00:02:13,920
رمزگشایی utf-8 را انجام دهم، اکنون میتوانیم ببینیم که ما
58
00:02:13,920 –> 00:02:16,410
یک هش مشابه داریم، اما
59
00:02:16,410 –> 00:02:17,970
دیگر در ابتدا وجود ندارد، بنابراین این فقط
60
00:02:17,970 –> 00:02:19,860
یک رشته معمولی است، بنابراین نکته ای که
61
00:02:19,860 –> 00:02:21,840
در اینجا باید به آن توجه کرد این است که هر بار که این را اجرا
62
00:02:21,840 –> 00:02:24,450
می کنم، هش متفاوتی دریافت می کنم، حتی زمانی که
63
00:02:24,450 –> 00:02:26,760
از همان رمز عبور استفاده می کنم، بنابراین اگر این کار را انجام دهم این دوباره
64
00:02:26,760 –> 00:02:29,010
پس این هش با قبلی متفاوت
65
00:02:29,010 –> 00:02:31,290
است و اگر دوباره این کار را انجام دهم
66
00:02:31,290 –> 00:02:32,520
کاملاً متفاوت از قبلی است،
67
00:02:32,520 –> 00:02:34,350
بنابراین این بدان معنی است که اگر کسی
68
00:02:34,350 –> 00:02:36,600
این را از پایگاه داده شما بدزدد
69
00:02:36,600 –> 00:02:37,980
، حتی نمی تواند از هش استفاده کند.
70
00:02:37,980 –> 00:02:40,470
جدول برای شکستن این پسوردها، بنابراین
71
00:02:40,470 –> 00:02:43,230
اگر هر بار هش متفاوتی است،
72
00:02:43,230 –> 00:02:45,569
چگونه میتوانیم بررسی کنیم که کاربر رمز عبور صحیح را وارد کرده است،
73
00:02:45,569 –> 00:02:47,850
اگر فقط
74
00:02:47,850 –> 00:02:49,739
رمز عبور وارد شده را هش کنیم و میتوانیم آن را با
75
00:02:49,739 –> 00:02:51,480
آنچه که در پایگاه داده ذخیره کردهایم مقایسه کنیم، آنگاه بیشتر
76
00:02:51,480 –> 00:02:53,910
این کار را انجام میدهند. به احتمال زیاد متفاوت است بنابراین
77
00:02:53,910 –> 00:02:56,160
ما باید از روش دیگری به نام
78
00:02:56,160 –> 00:02:58,890
check password hash استفاده کنیم تا بررسی کنیم
79
00:02:58,890 –> 00:03:01,319
که آیا این رمز عبور برابر است یا خیر، بنابراین من
80
00:03:01,319 –> 00:03:04,319
این رمز عبور هش را به عنوان یک متغیر ذخیره
81
00:03:04,319 –> 00:03:06,480
می کنم، بنابراین دوباره این را اجرا می کنم و فقط
82
00:03:06,480 –> 00:03:09,480
می گویم که این رمز عبور ما هش شده است. رمز عبور را
83
00:03:09,480 –> 00:03:11,580
به خاطر بسپارید و رمز عبوری را که در آنجا استفاده کردیم
84
00:03:11,580 –> 00:03:14,549
، رشته آزمایش بود، بنابراین حالا اجازه دهید
85
00:03:14,549 –> 00:03:16,590
این را پاک کنم تا فضای بیشتری
86
00:03:16,590 –> 00:03:19,109
در اینجا داشته باشیم و حالا بیایید چند کلمه عبور را
87
00:03:19,109 –> 00:03:21,540
در مقابل این رمز عبور هش شده بررسی کنیم، بنابراین اگر
88
00:03:21,540 –> 00:03:27,090
میگویم crip dot check password hash
89
00:03:27,090 –> 00:03:28,769
ابتدا میخواهیم
90
00:03:28,769 –> 00:03:31,170
رمز عبور هششده را وارد کنیم، بنابراین من آن رمز عبور هششده را وارد میکنم
91
00:03:31,170 –> 00:03:33,180
و حالا بیایید آن را
92
00:03:33,180 –> 00:03:36,750
با یک رمز عبور مقایسه کنیم، بنابراین
93
00:03:36,750 –> 00:03:38,609
از آنجایی که
94
00:03:38,609 –> 00:03:40,620
رمز عبور هش ما در ابتدا آزمایش میشد، باید آن را false برگردانیم، بنابراین
95
00:03:40,620 –> 00:03:42,540
میتوانیم ببینیم که یک رمز عبور نادرست دریافت کردهایم. ارزش
96
00:03:42,540 –> 00:03:46,829
وجود دارد، اما اگر در تست قبول شوم و
97
00:03:46,829 –> 00:03:50,310
آن را بررسی کنم، به ما یک true می دهد، بنابراین
98
00:03:50,310 –> 00:03:52,170
ما می خواهیم رمز عبور را هش و تأیید کنیم،
99
00:03:52,170 –> 00:03:54,630
بنابراین بیایید این را به
100
00:03:54,630 –> 00:03:57,600
مقداردهی اولیه برنامه خود اضافه کنیم تا
101
00:03:57,600 –> 00:04:01,410
از این خارج شده و ترمینال خود را پاک کنم
102
00:04:01,410 –> 00:04:05,549
و هیچ بیایید پروژه خود را باز کنیم و
103
00:04:05,549 –> 00:04:08,250
من در بسته خود هستم و فایل پای نقطهای
104
00:04:08,250 –> 00:04:10,650
را اینجا قرار میدهم که در آن برنامه خود را مقداردهی اولیه
105
00:04:10,650 –> 00:04:12,540
میکنیم و اکنون برای مقداردهی اولیه
106
00:04:12,540 –> 00:04:14,010
آن، در اینجا تقریباً شبیه به کیمیاگری SQL خواهد بود،
107
00:04:14,010 –> 00:04:16,079
بنابراین از
108
00:04:16,079 –> 00:04:19,950
واردات flask bcrypt فقط میگوییم که
109
00:04:19,950 –> 00:04:23,729
کلاس bcrypt و سپس در اینجا در پایین
110
00:04:23,729 –> 00:04:27,240
می گوییم be crypt برابر با
111
00:04:27,240 –> 00:04:29,940
رمزگشایی است و می خواهیم در آن برنامه
112
00:04:29,940 –> 00:04:33,150
به آن کلاس bcrypt منتقل کنیم تا آن را مقداردهی اولیه کنیم،
113
00:04:33,150 –> 00:04:35,340
بنابراین اکنون بیایید مسیرهای خود را باز کنیم و
114
00:04:35,340 –> 00:04:37,800
ببینیم منطق ثبت فعلی ما
115
00:04:37,800 –> 00:04:40,380
چیست. اگر من به مسیرها بروم و
116
00:04:40,380 –> 00:04:43,680
به مسیر ثبت نام خود در اینجا بروم و می
117
00:04:43,680 –> 00:04:45,270
خواهم این متن را کمی بزرگتر کنم
118
00:04:45,270 –> 00:04:48,389
تا بتوانیم اینجا را بهتر ببینیم بسیار خوب بنابراین
119
00:04:48,389 –> 00:04:50,849
در حال حاضر بررسی می کنیم که آیا این فرم
120
00:04:50,849 –> 00:04:54,360
در ارسال معتبر است یا خیر
121
00:04:54,360 –> 00:04:57,300
پیامی را فلش می کنیم مبنی بر اینکه یک حساب کاربری
122
00:04:57,300 –> 00:05:00,990
برای کاربر ایجاد شده است اما ما در
123
00:05:00,990 –> 00:05:03,270
حال حاضر آن حساب را ایجاد نمی کنیم،
124
00:05:03,270 –> 00:05:05,099
بنابراین بیایید این کار را انجام دهیم،
125
00:05:05,099 –> 00:05:07,949
بنابراین اگر فرم در هنگام ارسال معتبر است،
126
00:05:07,949 –> 00:05:10,440
ابتدا اجازه دهید رمز عبور وارد شده را هش
127
00:05:10,440 –> 00:05:12,419
کنیم تا برای ما آماده است برای
128
00:05:12,419 –> 00:05:15,180
ذخیره آن در پایگاه داده طعمه، بنابراین ابتدا
129
00:05:15,180 –> 00:05:17,729
باید bcrypt و متغیرهای DB را وارد
130
00:05:17,729 –> 00:05:20,340
کنیم و به یاد داشته باشیم که اگر
131
00:05:20,340 –> 00:05:23,190
از بسته خود وارد می کنیم، سپس آن
132
00:05:23,190 –> 00:05:25,080
را از آن فایل Annette PI وارد
133
00:05:25,080 –> 00:05:26,729
می کنیم، اما می توانیم به سادگی آن را بنویسیم که
134
00:05:26,729 –> 00:05:28,590
انگار ما دوباره از خود بسته وارد
135
00:05:28,590 –> 00:05:31,020
می کنیم، بنابراین ما در حال حاضر این
136
00:05:31,020 –> 00:05:33,780
برنامه را از آن بسته وارد می کنیم، بنابراین اکنون باید
137
00:05:33,780 –> 00:05:38,070
DB و bcrypt خود را نیز وارد کنیم بسیار خوب،
138
00:05:38,070 –> 00:05:39,300
بنابراین حالا بیایید به
139
00:05:39,300 –> 00:05:43,400
مسیر ثبت نام خود برگردیم و در داخل
140
00:05:43,400 –> 00:05:45,719
اعتبار سنجی خود به شرط ارائه در اینجا و
141
00:05:45,719 –> 00:05:47,219
این اساساً همان چیزی است
142
00:05:47,219 –> 00:05:48,750
که یک ثانیه پیش در خط فرمان دیدیم،
143
00:05:48,750 –> 00:05:50,930
بنابراین من می گویم
144
00:05:50,930 –> 00:05:54,979
رمز عبور هش شده برابر است با crypt dot
145
00:05:54,979 –> 00:05:57,900
ایجاد هش خوب در واقع
146
00:05:57,900 –> 00:06:02,310
ایجاد هش رمز عبور است و سپس ما می خواهیم
147
00:06:02,310 –> 00:06:04,830
رمز عبور را وارد کنیم. می خواهید
148
00:06:04,830 –> 00:06:07,020
هش کنید و این همان چیزی است
149
00:06:07,020 –> 00:06:10,830
که در فیلد رمز عبور وارد می کنند، به طوری
150
00:06:10,830 –> 00:06:14,039
که از داده های نقطه رمز عبور نقطه ای تشکیل می شود و
151
00:06:14,039 –> 00:06:15,389
اکنون به یاد داشته باشید که اگر بخواهیم این یک
152
00:06:15,389 –> 00:06:17,460
رشته به جای بایت باشد، می توانیم
153
00:06:17,460 –> 00:06:21,630
رمزگشایی نقطه ای utf-8 را انجام دهیم و من’
154
00:06:21,630 –> 00:06:23,580
میخواهیم نوار کناری را در اینجا ببندیم تا
155
00:06:23,580 –> 00:06:26,370
بتوانیم تعداد بیشتری از این خط را ببینیم، بنابراین اکنون
156
00:06:26,370 –> 00:06:28,530
که یک رمز عبور هش شده داریم،
157
00:06:28,530 –> 00:06:30,870
میتوانیم یک نمونه جدید از یک کاربر ایجاد کنیم و
158
00:06:30,870 –> 00:06:32,820
نحوه انجام این کار را در ویدیوی قبلی
159
00:06:32,820 –> 00:06:36,240
دیدیم تا بتوانیم این کار را انجام دهیم. این فقط با رفتن به
160
00:06:36,240 –> 00:06:39,389
خط بعدی و ایجاد یک کاربر جدید، بنابراین
161
00:06:39,389 –> 00:06:40,740
من می گویم کاربر برابر
162
00:06:40,740 –> 00:06:44,069
با کاربر است و اکنون باید در
163
00:06:44,069 –> 00:06:46,710
تمام فیلدها عبور کنیم بنابراین می خواهیم نام کاربری
164
00:06:46,710 –> 00:06:50,699
این کاربر با اطلاعاتی
165
00:06:50,699 –> 00:06:52,500
که آنها دارد برابر باشد. به نام کاربری
166
00:06:52,500 –> 00:06:56,280
فیلدها داده های نام کاربری صوتی منتقل می شود و اکنون می
167
00:06:56,280 –> 00:06:59,340
خواهیم ایمیل این کاربر را برابر
168
00:06:59,340 –> 00:07:03,030
با داده های ایمیل قرار دهیم و سپس می توانیم
169
00:07:03,030 –> 00:07:05,009
رمز عبور این کاربر را تعیین کنیم و آن
170
00:07:05,009 –> 00:07:07,949
رمز عبور برابر با
171
00:07:07,949 –> 00:07:10,800
رمز عبور هش شده ما خواهد بود. نمیخواهیم
172
00:07:10,800 –> 00:07:13,259
دادههایی را که آنها به فرم ارسال کردهاند ارسال کنیم،
173
00:07:13,259 –> 00:07:15,150
زیرا این رمز عبور متن ساده است
174
00:07:15,150 –> 00:07:16,949
که ما میخواهیم نسخه هششده
175
00:07:16,949 –> 00:07:19,830
آن را درست کنیم، بنابراین وقتی آن کاربر را
176
00:07:19,830 –> 00:07:22,680
ایجاد کردیم، میتوانیم به خط بعدی
177
00:07:22,680 –> 00:07:25,440
در اینجا برویم و این کاربر را به آن اضافه کنیم. تغییراتی
178
00:07:25,440 –> 00:07:27,270
که می خواهیم در پایگاه داده خود ایجاد کنیم تا
179
00:07:27,270 –> 00:07:31,470
بتوانیم این کار را انجام دهیم با گفتن DB session dot
180
00:07:31,470 –> 00:07:34,740
add و سپس اضافه کردن آن کاربر و اکنون ما
181
00:07:34,740 –> 00:07:36,720
نیز می خواهیم آن تغییرات را انجام دهیم، این
182
00:07:36,720 –> 00:07:39,389
تنها یک تغییر است، بنابراین می توانیم بگوییم DB session
183
00:07:39,389 –> 00:07:42,090
dot commit OK.
184
00:07:42,090 –> 00:07:43,080
185
00:07:43,080 –> 00:07:45,300
186
00:07:45,300 –> 00:07:46,770
که حساب کاربری آنها ایجاد شده است
187
00:07:46,770 –> 00:07:49,500
و آنها اکنون می توانند وارد سیستم شوند، بنابراین به
188
00:07:49,500 –> 00:07:52,590
جای پیامی که ما در حال حاضر
189
00:07:52,590 –> 00:07:56,070
اینجا داریم، به جای
190
00:07:56,070 –> 00:07:58,860
آن پیامی ارسال می کنم فقط می گوید حساب
191
00:07:58,860 –> 00:08:05,039
شما ایجاد شده است، اکنون می توانید وارد شوید
192
00:08:05,039 –> 00:08:07,110
و دوباره ما آن دسته موفقیت را در آنجا نگه میداریم
193
00:08:07,110 –> 00:08:09,060
زیرا
194
00:08:09,060 –> 00:08:11,099
کلاس بوت استرپ است و اکنون به جای
195
00:08:11,099 –> 00:08:12,810
اینکه آنها را به مسیر اصلی برگردانیم، اجازه دهید
196
00:08:12,810 –> 00:08:15,090
آنها را به مسیر ورود به سیستم برگردانیم تا
197
00:08:15,090 –> 00:08:16,710
بتوانند با آن حساب جدید ایجاد
198
00:08:16,710 –> 00:08:18,719
شده وارد شوند، بنابراین حالا ببینیم آیا این
199
00:08:18,719 –> 00:08:20,759
قسمت اینطور کار کرده است یا خیر. بیایید وبسایت خود را راهاندازی کنیم،
200
00:08:20,759 –> 00:08:23,430
بنابراین من ترمینال خود را
201
00:08:23,430 –> 00:08:25,349
در اینجا میآورم خط فرمان ما و این
202
00:08:25,349 –> 00:08:27,180
برنامه را درست همانطور که قبلاً
203
00:08:27,180 –> 00:08:30,599
با Python run dot pi دیدهایم اجرا میکنم تا سرور ما در
204
00:08:30,599 –> 00:08:32,729
حال اجرا باشد و ما هیچگونه پخشی نداشته باشیم. باز خواهد شد
205
00:08:32,729 –> 00:08:36,208
خوب است و وبسایت خوب به نظر میرسد،
206
00:08:36,208 –> 00:08:38,159
بنابراین اگر به صفحه ثبتنام بروم،
207
00:08:38,159 –> 00:08:38,610
208
00:08:38,610 –> 00:08:41,700
بنابراین اگر روی ثبت نام بدون هیچ چیز کلیک کنم،
209
00:08:41,700 –> 00:08:43,440
میتوانیم ببینیم که اعتبارسنجی همچنان
210
00:08:43,440 –> 00:08:45,570
کار میکند، بنابراین خوب است و حالا اجازه دهید
211
00:08:45,570 –> 00:08:49,199
فقط یک کاربر ساختگی در اینجا ایجاد کنم تا Cory M
212
00:08:49,199 –> 00:08:52,920
s و Cory M Schaefer در gmail.com
213
00:08:52,920 –> 00:08:54,400
و رمز عبوری که من به
214
00:08:54,400 –> 00:08:57,580
عنوان آزمایش وارد میکنم، پس بیایید ثبت نام کنیم، بنابراین با
215
00:08:57,580 –> 00:08:59,620
اطلاعات فرم معتبر میتوانیم ببینیم که
216
00:08:59,620 –> 00:09:01,330
ما اکنون به صفحه ورود
217
00:09:01,330 –> 00:09:03,670
هدایت شدهایم، پیام فلش شده ما به شما نمیگوید.
218
00:09:03,670 –> 00:09:06,190
ما که اکنون میتوانیم وارد شویم، لاگینهای
219
00:09:06,190 –> 00:09:08,110
ما هنوز کار نمیکنند، اما به نظر میرسد
220
00:09:08,110 –> 00:09:10,900
کاربر ما به پایگاه داده اضافه شده است، اما
221
00:09:10,900 –> 00:09:12,730
بیایید از این مطمئن شویم، بنابراین
222
00:09:12,730 –> 00:09:15,390
من خط فرمان خود را بالا میآورم و
223
00:09:15,390 –> 00:09:18,070
از اجرای سایت خود جلوگیری میکنم. من
224
00:09:18,070 –> 00:09:20,170
آن را با کنترل C می کشم، اکنون می خواهم این
225
00:09:20,170 –> 00:09:22,960
را پاک کنم و پایتون را راه اندازی می کنم
226
00:09:22,960 –> 00:09:26,860
و مدل کاربر پایگاه داده خود را وارد می کنم، بنابراین
227
00:09:26,860 –> 00:09:31,360
می گویم از flask blog import DB و
228
00:09:31,360 –> 00:09:34,480
همچنین می خواهیم مدل کاربر خود را وارد کنیم، بنابراین
229
00:09:34,480 –> 00:09:38,160
ما از فلاسک وبلاگ مدل نقطهای
230
00:09:38,160 –> 00:09:41,320
کاربر وارد میکنیم و حالا بیایید اولین مورد را بگیریم
231
00:09:41,320 –> 00:09:43,360
کاربر خارج از این جدول است، بنابراین من می گویم کاربر
232
00:09:43,360 –> 00:09:48,220
ابتدا با نقطه پرس و جو کاربر برابر است و
233
00:09:48,220 –> 00:09:49,660
ما نحوه انجام این کار را در ویدیوی قبلی دیدیم،
234
00:09:49,660 –> 00:09:51,550
بنابراین اگر ویدیوی پایگاه داده ما را تماشا نکرده
235
00:09:51,550 –> 00:09:53,080
اید، ممکن است بخواهید آن را تماشا کنید
236
00:09:53,080 –> 00:09:54,880
تا متوجه شوید که اینها چیستند. پرس و جوها به
237
00:09:54,880 –> 00:09:57,370
خوبی انجام می شوند، بنابراین اکنون بیایید آن کاربر را پرینت
238
00:09:57,370 –> 00:09:59,860
کنیم و می بینیم که کاربری
239
00:09:59,860 –> 00:10:03,820
با نام کاربری اصلی DMS
240
00:10:03,820 –> 00:10:05,800
ایمیل khorium Schaefer در gmail.com و
241
00:10:05,800 –> 00:10:08,020
تصویر نمایه JPEG پیش فرض ما دریافت کرده ایم، بنابراین اکنون
242
00:10:08,020 –> 00:10:09,610
اجازه دهید به رمز عبور این مورد نگاه کنیم. کاربر،
243
00:10:09,610 –> 00:10:13,270
بنابراین اگر رمز عبور نقطه کاربر را بگویم،
244
00:10:13,270 –> 00:10:14,920
میتوانیم ببینیم که نسخه هش شده رمز عبور را دریافت میکنیم
245
00:10:14,920 –> 00:10:16,840
و این دقیقاً همان چیزی است که میخواهیم،
246
00:10:16,840 –> 00:10:20,020
است، بنابراین خوب است، اما اگر به
247
00:10:20,020 –> 00:10:21,820
رنامه خود برگردیم، در
248
00:10:21,820 –> 00:10:23,800
اقع مشکلی در نحوه دا
249
00:10:23,800 –> 00:10:26,320
تن این رمز وجود دارد. در حال حاضر این ممکن است
250
00:10:26,320 –> 00:10:28,720
کاملاً واضح نباشد، بنابراین در حال حاضر
251
00:10:28,720 –> 00:10:30,490
فرم ثبت نام ما
252
00:10:30,490 –> 00:10:33,580
در برابر مواردی مانند ایمیل های بد و فیلدهای خالی اعتبار سنجی می
253
00:10:33,580 –> 00:10:35,500
شود، اما هیچ چیزی مانع
254
00:10:35,500 –> 00:10:37,390
از تلاش کاربر برای ثبت نام با
255
00:10:37,390 –> 00:10:40,510
نام کاربری یا ایمیلی که از قبل در شما وجود دارد وجود ندارد.
256
00:10:40,510 –> 00:10:42,460
پایگاه داده r اکنون یک
257
00:10:42,460 –> 00:10:46,240
محدودیت در مدل های پایگاه داده خود داریم که می گوید
258
00:10:46,240 –> 00:10:48,280
آن ها باید منحصر به فرد باشند، اما
259
00:10:48,280 –> 00:10:50,890
تا زمانی که سعی نکنیم
260
00:10:50,890 –> 00:10:53,230
کاربر جدید را به پایگاه داده اضافه کنیم، شناسایی نمی شود یا خطایی ایجاد نمی کند، بنابراین
261
00:10:53,230 –> 00:10:55,390
بیایید ببینیم اگر این کار به چه صورت است.
262
00:10:55,390 –> 00:10:57,940
ما سعی میکردیم کاربر یا ایمیل دیگری را اضافه
263
00:10:57,940 –> 00:11:00,520
کنیم که در حال حاضر وجود دارد، بنابراین بیایید
264
00:11:00,520 –> 00:11:02,800
دوباره وبسایت را راهاندازی کنیم، بنابراین من به
265
00:11:02,800 –> 00:11:05,200
اینجا برمیگردم و مفسر پایتون
266
00:11:05,200 –> 00:11:06,780
را
267
00:11:06,780 –> 00:11:10,380
میبندم و برنامه خود را مجدداً اجرا میکنم و حالا اجازه دهید
268
00:11:10,380 –> 00:11:12,690
به برنامه خود برگردیم و به
269
00:11:12,690 –> 00:11:14,310
مسیر ثبت نام و اکنون من فقط
270
00:11:14,310 –> 00:11:15,810
سعی می کنم با همان
271
00:11:15,810 –> 00:11:18,180
اعتبارنامه هایی که قبلا استفاده می کردم ثبت نام کنم، به طوری
272
00:11:18,180 –> 00:11:22,050
که برای EMS و Cory M Schaefer در
273
00:11:22,050 –> 00:11:27,870
gmail.com با رمز عبور اینجا بود و ثبت نام کنید
274
00:11:27,870 –> 00:11:29,730
و می بینید که ما به این زشتی می رسیم.
275
00:11:29,730 –> 00:11:31,800
صفحه خطا که در آن میگوید ما
276
00:11:31,800 –> 00:11:35,190
یکپارچگی کیمیاگری SQL داشتیم و
277
00:11:35,190 –> 00:11:38,670
محدودیت منحصربهفرد ناموفق بود و
278
00:11:38,670 –> 00:11:41,070
همچنین ردپای پشتهای را در اینجا از
279
00:11:41,070 –> 00:11:43,410
همه کدهایی که منجر به این هوا شده است چاپ میکند،
280
00:11:43,410 –> 00:11:44,310
اکنون این اولین باری است که میبینیم.
281
00:11:44,310 –> 00:11:46,890
صفحه خطایی مانند th این همان چیزی است که
282
00:11:46,890 –> 00:11:48,870
زمانی اتفاق می افتد که فلاسک خطا می دهد و
283
00:11:48,870 –> 00:11:50,700
شما در حالت اشکال زدایی در حال اجرا هستید، این
284
00:11:50,700 –> 00:11:52,710
اطلاعات می تواند برای
285
00:11:52,710 –> 00:11:54,360
مشکلات اشکال زدایی در برنامه شما بسیار مفید باشد،
286
00:11:54,360 –> 00:11:56,310
اما به همین دلیل است که نمی خواهید به
287
00:11:56,310 –> 00:11:58,230
این دلیل باشید که می خواهید کاملاً مطمئن شوید
288
00:11:58,230 –> 00:12:00,510
که وقتی وبسایت خود را به صورت عمومی راهاندازی میکنید، هرگز در حالت اشکالزدایی اجرا نمیشوید،
289
00:12:00,510 –> 00:12:02,550
290
00:12:02,550 –> 00:12:04,230
زیرا این
291
00:12:04,230 –> 00:12:06,330
اطلاعات بسیار زیادی است که نمیتوان آن را در معرض دید افراد دیگر قرار داد،
292
00:12:06,330 –> 00:12:09,000
در واقع میتوانید به
293
00:12:09,000 –> 00:12:11,400
انتهای ردیابی پشته بروید و کد پایتون را اجرا کنید تا
294
00:12:11,400 –> 00:12:13,620
مشکل را بیشتر بررسی کنید و
295
00:12:13,620 –> 00:12:15,570
نیاز دارید. پین دیباگر کنسول خود را
296
00:12:15,570 –> 00:12:17,760
برای انجام این کار اما هنوز هم داشتن
297
00:12:17,760 –> 00:12:19,620
چنین قابلیتی خطرناک است، به عنوان مثال اگر من
298
00:12:19,620 –> 00:12:22,380
بخواهم این خط را در اینجا اشکال زدایی کنم، جایی که
299
00:12:22,380 –> 00:12:25,200
commit نقطه جلسه DB را انجام دادیم،
300
00:12:25,200 –> 00:12:28,320
می توانم فقط روی آن خط کلیک کنم یا
301
00:12:28,320 –> 00:12:31,860
روی گزینه اینجا کلیک کنم. در سمت راست
302
00:12:31,860 –> 00:12:34,920
جایی که میگوید کد را در اینجا اجرا کنید، بنابراین اگر
303
00:12:34,920 –> 00:12:36,360
روی آن کلیک کنم،
304
00:12:36,360 –> 00:12:39,300
اشکالزدایی یا پین را میخواهد، و اگر زمانی که سرور خود را راهاندازی کردیم، ترمینال خود را بالا بکشم
305
00:12:39,300 –> 00:12:41,850
و کمی به اینجا بروید،
306
00:12:41,850 –> 00:12:46,050
میتوانیم
307
00:12:46,050 –> 00:12:48,000
ببینیم که دارد یک اشکالزدایی یا پین در اینجا، بنابراین من آن را
308
00:12:48,000 –> 00:12:51,570
کپی میکنم و آن را
309
00:12:51,570 –> 00:12:54,240
در دیباگر خود در سایت جایگذاری میکنم و اکنون میتوانیم
310
00:12:54,240 –> 00:12:56,430
کد پایتون را در اینجا در
311
00:12:56,430 –> 00:12:58,710
مرورگر اجرا کنیم تا ببینیم که
312
00:12:58,710 –> 00:13:00,330
متغیرها در این مرحله از
313
00:13:00,330 –> 00:13:02,940
برنامه چه هستند، بنابراین اگر من برای چاپ
314
00:13:02,940 –> 00:13:05,700
کاربر بود و ما میتوانیم ببینیم که متغیر کاربر ما
315
00:13:05,700 –> 00:13:08,280
در آن نقطه چه بود، بنابراین ایمیل نقطه کاربر،
316
00:13:08,280 –> 00:13:10,860
بنابراین میتوانیم ببینیم
317
00:13:10,860 –> 00:13:13,080
که میتوانیم اطلاعاتی را دوباره به دست آوریم تا
318
00:13:13,080 –> 00:13:15,240
برای اشکالزدایی برخی مشکلات مفید باشد، اما
319
00:13:15,240 –> 00:13:17,040
به همین دلیل است که نمیخواهید برای
320
00:13:17,040 –> 00:13:18,770
اینکه در زمان تولید در حالت اشکال زدایی باشید،
321
00:13:18,770 –> 00:13:20,610
خوب است، بنابراین
322
00:13:20,610 –> 00:13:22,680
اکنون باید شکستی را که
323
00:13:22,680 –> 00:13:25,079
در اینجا دیدیم قبل از رسیدن به این صفحه نمایش زشت هوا، تشخیص دهیم،
324
00:13:25,079 –> 00:13:26,790
اکنون ممکن است فکر کنید که
325
00:13:26,790 –> 00:13:30,450
بهتر است به مسیر ثبت نام خود در اینجا بروید
326
00:13:30,450 –> 00:13:32,579
و تعدادی را اضافه کنید. پس از تایید فرم ما پایگاه داده را بررسی می کند
327
00:13:32,579 –> 00:13:36,240
تا ببیند آیا
328
00:13:36,240 –> 00:13:38,370
نام کاربری یا ایمیل قبلاً در پایگاه داده ما وجود دارد یا خیر
329
00:13:38,370 –> 00:13:40,380
و این یکی از راه های انجام
330
00:13:40,380 –> 00:13:42,240
آن خواهد بود، اما من فکر می کنم بهترین راه برای انجام
331
00:13:42,240 –> 00:13:44,490
این کار اضافه کردن اعتبار سفارشی خودمان
332
00:13:44,490 –> 00:13:47,100
برای فرم ثبت نام است. به این
333
00:13:47,100 –> 00:13:49,709
ترتیب زمانی که ما acce می کنیم بررسی می شود سعی کنید
334
00:13:49,709 –> 00:13:51,720
فرم را اعتبار سنجی کنید و ما
335
00:13:51,720 –> 00:13:53,220
بازخورد بصری
336
00:13:53,220 –> 00:13:55,769
پیام های خطا را همانطور که قبلاً دیده بودیم برمی گردانیم، بنابراین اکنون چگونه
337
00:13:55,769 –> 00:13:58,589
این کار را انجام دهیم، من این را از مستندات فرم WT دریافت کردم،
338
00:13:58,589 –> 00:14:02,269
بنابراین اگر ما فایل فرم های خود را باز کنیم
339
00:14:02,269 –> 00:14:05,579
، من آن را باز می کنم. نوار کناری من را در اینجا
340
00:14:05,579 –> 00:14:07,920
بالا ببرید و ماژول فرم های ما را باز کنید تا این کار را انجام
341
00:14:07,920 –> 00:14:09,300
دهیم، ما می خواهیم به داخل
342
00:14:09,300 –> 00:14:12,329
فرم ثبت نام خود در اینجا بیاییم و به پایین برویم و
343
00:14:12,329 –> 00:14:14,279
اکنون می توانیم
344
00:14:14,279 –> 00:14:16,860
به سادگی با ایجاد یک تابع در این فرم یک اعتبارسنجی سفارشی ایجاد کنیم،
345
00:14:16,860 –> 00:14:19,920
بنابراین من این را تایپ می کنم و
346
00:14:19,920 –> 00:14:22,040
میتوانیم از آن عبور کنیم، بنابراین میگوییم که
347
00:14:22,040 –> 00:14:24,140
این تابعی از
348
00:14:24,140 –> 00:14:28,980
فیلد اعتبارسنجی خواهد بود و خود و فیلد را
349
00:14:28,980 –> 00:14:31,920
بهعنوان آرگومانهایی در آنجا در نظر میگیریم، سپس
350
00:14:31,920 –> 00:14:37,110
میگوییم اگر خطای اعتبارسنجی افزایش یافته درست باشد و
351
00:14:37,110 –> 00:14:39,980
همچنین یک خطا میخواهیم.
352
00:14:39,980 –> 00:14:43,890
پیام اعتبار سنجی بسیار خوب است، بنابراین
353
00:14:43,890 –> 00:14:45,899
آنچه که من در اینجا ایجاد کردم اساساً یک
354
00:14:45,899 –> 00:14:49,230
الگویی برای روش های اعتبار سنجی ما است، بنابراین
355
00:14:49,230 –> 00:14:51,000
می خواهیم آنها در این
356
00:14:51,000 –> 00:14:53,160
قالب باشند، بنابراین اعتبار سنجی و سپس
357
00:14:53,160 –> 00:14:54,870
نام فیلد را در اینجا قرار می دهیم تا ما می
358
00:14:54,870 –> 00:14:57,240
خواهید اعتبار سنجی کنید و سپس در فیلد نیز عبور کنید
359
00:14:57,240 –> 00:14:59,820
d را در اینجا به عنوان یک آرگومان نام ببرید و سپس
360
00:14:59,820 –> 00:15:01,079
یک نوع
361
00:15:01,079 –> 00:15:04,079
شرطی خواهیم داشت، بنابراین این فقط می گوید اگر فعلا درست است،
362
00:15:04,079 –> 00:15:05,610
اما ما یک نوع شرطی را اضافه می
363
00:15:05,610 –> 00:15:07,079
کنیم و اگر
364
00:15:07,079 –> 00:15:09,209
آن شرط را برآورده کرد، می توانیم یک خطای اعتبارسنجی را
365
00:15:09,209 –> 00:15:11,790
با یک پیام اعتبار سنجی و من
366
00:15:11,790 –> 00:15:13,079
فکر می کنم وقتی
367
00:15:13,079 –> 00:15:15,209
این را برای نیازهای خود سفارشی کنیم این موضوع واضح تر خواهد شد، بنابراین بیایید این کار
368
00:15:15,209 –> 00:15:17,970
را اکنون انجام دهیم بنابراین می خواهیم
369
00:15:17,970 –> 00:15:21,810
فیلد نام کاربری را تأیید کنیم تا بتوانیم نام این فیلد
370
00:15:21,810 –> 00:15:25,470
را به نام کاربری تغییر دهیم و همچنین
371
00:15:25,470 –> 00:15:27,269
آن آرگومان را به از نام خود در آنجا استفاده کنید
372
00:15:27,269 –> 00:15:29,220
و شرطی که میخواهیم بررسی کنیم این است
373
00:15:29,220 –> 00:15:31,740
که آیا کاربر قبلاً در پایگاه داده وجود دارد یا نه،
374
00:15:31,740 –> 00:15:34,200
بنابراین ابتدا باید
375
00:15:34,200 –> 00:15:36,720
مدل کاربر را از مدلهای خود Impe کنیم، بنابراین
376
00:15:36,720 –> 00:15:40,769
از بالا اینجا میگویم از flask blog
377
00:15:40,769 –> 00:15:44,970
dot models import user. و اکنون
378
00:15:44,970 –> 00:15:47,130
به شرطی خود برگردید و اکنون میتوانیم با گفتن عبارت فوق شرطی در اینجا پرس و جو
379
00:15:47,130 –> 00:15:49,230
کنیم که آیا نام کاربری ارسال شده
380
00:15:49,230 –> 00:15:52,339
به فرم قبلاً در پایگاه داده ما وجود دارد یا خیر.
381
00:15:52,339 –> 00:15:55,380
382
00:15:55,380 –> 00:16:00,810
383
00:16:00,810 –> 00:16:04,019
384
00:16:04,019 –> 00:16:07,260
اگر این نام کاربری در حال حاضر در
385
00:16:07,260 –> 00:16:09,510
پایگاه داده است، ما می گوییم نام کاربری برابر است با
386
00:16:09,510 –> 00:16:12,449
داده های نقطه نام کاربری، اکنون این همان چیزی است
387
00:16:12,449 –> 00:16:14,040
که از فرم می آید، این همان چیزی است که این
388
00:16:14,040 –> 00:16:16,139
آرگومان اینجا است و سپس ما
389
00:16:16,139 –> 00:16:19,050
فقط اولین مقدار را از پایگاه داده برمی گردانیم،
390
00:16:19,050 –> 00:16:22,260
بنابراین اگر وجود داشت یک مقدار سپس ما
391
00:16:22,260 –> 00:16:24,420
اولین مورد را در آنجا دریافت می کنیم اگر کاربری وجود نداشته باشد،
392
00:16:24,420 –> 00:16:25,920
پس فقط
393
00:16:25,920 –> 00:16:27,690
هیچ کدام را برمی گرداند و اکنون می توانیم
394
00:16:27,690 –> 00:16:29,430
شرط خود را به چیزی تغییر دهیم که می خواهیم
395
00:16:29,430 –> 00:16:32,339
یک خطای اعتبار سنجی ایجاد کنیم، بنابراین اگر این کاربر از
396
00:16:32,339 –> 00:16:35,070
قبل وجود داشته باشد، پس ما میخواهم
397
00:16:35,070 –> 00:16:37,350
خطای اعتبارسنجی را پرتاب کنم، بنابراین من از شر
398
00:16:37,350 –> 00:16:39,570
این فضاهای خالی خلاص میشوم، بنابراین فقط
399
00:16:39,570 –> 00:16:45,690
میگوییم اگر کاربر wowops کند، اگر کاربر باشد، میخواهیم
400
00:16:45,690 –> 00:16:47,699
خطای اعتبارسنجی را بالا ببریم، بنابراین
401
00:16:47,699 –> 00:16:49,949
اگر کاربر هیچکدام نباشد،
402
00:16:49,949 –> 00:16:52,140
این حالت شرطی نمیشود. اما اگر کاربر
403
00:16:52,140 –> 00:16:53,910
چیزی غیر از هیچ باشد،
404
00:16:53,910 –> 00:16:55,620
این خطای اعتبارسنجی را پرتاب میکند، اکنون
405
00:16:55,620 –> 00:16:57,570
پیام اعتبارسنجی همان چیزی است که
406
00:16:57,570 –> 00:16:59,339
به فرم ارسال میشود، بنابراین میخواهیم
407
00:16:59,339 –> 00:17:01,740
دقیقتر باشیم تا کاربر بداند
408
00:17:01,740 –> 00:17:03,779
واقعاً چه اشتباهی رخ داده است، بنابراین میخواهیم
409
00:17:03,779 –> 00:17:11,119
آن نام کاربری را بگوییم. گرفته شده است لطفا انتخاب کنید یک مورد
410
00:17:11,119 –> 00:17:14,010
متفاوت و کوچک که
411
00:17:14,010 –> 00:17:15,630
آنجا را ببینید کمی عجیب به نظر می رسد خوب است،
412
00:17:15,630 –> 00:17:17,549
بنابراین برای اعتبارسنجی نام کاربری ما خوب است،
413
00:17:17,549 –> 00:17:19,470
اوه در واقع یک چیز دیگر وجود دارد
414
00:17:19,470 –> 00:17:21,599
که ما هنوز این
415
00:17:21,599 –> 00:17:23,760
خطای اعتبارسنجی را وارد نکرده ایم، بنابراین باید
416
00:17:23,760 –> 00:17:26,819
انجام شود و بخشی از
417
00:17:26,819 –> 00:17:29,340
اعتبارسنجی فرمهای WT است، بنابراین میتوانیم آن را
418
00:17:29,340 –> 00:17:33,360
به واردات اضافه کنیم، بنابراین از فرمهای WT، اعتباردهندههای نقطهای،
419
00:17:33,360 –> 00:17:35,790
آن خطای اعتبارسنجی را در
420
00:17:35,790 –> 00:17:38,160
آنجا به واردات اضافه کنیم، بنابراین
421
00:17:38,160 –> 00:17:39,840
اگر نام کاربری قبلاً گرفته شده باشد، باید به ما خطای اعتبار سنجی بدهد.
422
00:17:39,840 –> 00:17:41,850
423
00:17:41,850 –> 00:17:45,059
ایمیل نیز منحصر به فرد باشد، بنابراین بیایید
424
00:17:45,059 –> 00:17:47,970
یک اعتبارسنجی سفارشی دیگر برای ایمیل
425
00:17:47,970 –> 00:17:50,820
بسازیم و ما به سادگی می توانیم آن را کپی و جایگذاری
426
00:17:50,820 –> 00:17:54,179
کنیم زیرا بسیار شبیه خواهد بود و من آن
427
00:17:54,179 –> 00:17:59,039
را دقیقاً در زیر اینجا قرار
428
00:17:59,039 –> 00:18:00,570
می دهم و اکنون باید
429
00:18:00,570 –> 00:18:02,549
نام فیلدها را در اینجا تغییر دهیم. بنابراین میتوانیم بگوییم که
430
00:18:02,549 –> 00:18:05,280
میخواهیم این ایمیل اعتبارسنجی باشد و همچنین
431
00:18:05,280 –> 00:18:06,990
آرگومان ارسالی را تغییر دهیم
432
00:18:06,990 –> 00:18:09,480
تا پارامتر ایمیل همان چیزی باشد
433
00:18:09,480 –> 00:18:12,270
که میخواهیم و اکنون برای این میخواهیم
434
00:18:12,270 –> 00:18:14,730
مطمئن شویم که ایمیل در ما وجود ندارد.
435
00:18:14,730 –> 00:18:17,400
پایگاه داده بنابراین به جای
436
00:18:17,400 –> 00:18:19,860
نام کاربری برابر با داده های نام کاربری، می خواهیم این
437
00:18:19,860 –> 00:18:24,120
ایمیل برابر با داده های نقطه ایمیل باشد و
438
00:18:24,120 –> 00:18:25,950
بنابراین شرطی یکسان خواهد بود، بنابراین اگر
439
00:18:25,950 –> 00:18:29,789
کاربری با آن ایمیل وجود داشته باشد،
440
00:18:29,789 –> 00:18:31,950
می خواهیم یک خطای اعتبارسنجی ایجاد کنیم و
441
00:18:31,950 –> 00:18:34,320
پیام ما فقط می گوید آن ایمیل
442
00:18:34,320 –> 00:18:36,360
گرفته شده است، لطفاً ایمیل دیگری را انتخاب کنید، بنابراین
443
00:18:36,360 –> 00:18:38,280
ما آن را ذخیره میکنیم و به سادگی با
444
00:18:38,280 –> 00:18:40,350
اضافه کردن اعتبارسنجیهای سفارشی که
445
00:18:40,350 –> 00:18:42,000
باید مشکل ما را حل کنند و
446
00:18:42,000 –> 00:18:44,309
قبل از دیدن آن خطای زشتی که قبلاً دیدهایم، آن را حل کنیم
447
00:18:44,309 –> 00:18:47,640
، پس بیایید به عقب برگردیم و
448
00:18:47,640 –> 00:18:50,220
صفحه خود را مجدداً بارگذاری کنیم. بسیار خوب، به نظر می رسد که
449
00:18:50,220 –> 00:18:52,620
وب سایت ما هنوز در حال اجرا است، بنابراین خوب است،
450
00:18:52,620 –> 00:18:55,679
بنابراین من به فرم ثبت نام خود برمی گردم، بنابراین
451
00:18:55,679 –> 00:18:57,330
ما هنوز در آن صفحه زشت در آنجا هستیم و
452
00:18:57,330 –> 00:19:00,419
اکنون اجازه دهید سعی کنم فرم خود را با
453
00:19:00,419 –> 00:19:04,559
نام کاربری و ایمیلی که قبلاً وجود دارد پر کنم.
454
00:19:04,559 –> 00:19:08,730
در سیستم، بنابراین ما این را پر می کنیم و
455
00:19:08,730 –> 00:19:10,559
ثبت نام می کنیم و می بینیم که
456
00:19:10,559 –> 00:19:12,659
برای هر دوی آنها خطاهای اعتبارسنجی دریافت کرده ایم که این
457
00:19:12,659 –> 00:19:14,370
یکی می گوید نام کاربری در حال حاضر
458
00:19:14,370 –> 00:19:15,990
گرفته شده است، لطفاً یکی دیگر را انتخاب کنید که
459
00:19:15,990 –> 00:19:17,580
می گوید ایمیل گرفته شده است و دو مورد
460
00:19:17,580 –> 00:19:19,500
لطفاً یکی دیگر را انتخاب کنید
461
00:19:19,500 –> 00:19:21,390
تا کار کنند و ما توانستیم
462
00:19:21,390 –> 00:19:23,820
از پایگاه داده خود پرس و جو کنیم و به کاربر بگوییم که این
463
00:19:23,820 –> 00:19:26,039
نام کاربری یا ایمیل قبلاً گرفته شده است
464
00:19:26,039 –> 00:19:27,360
و آنها باید چیز دیگری را انتخاب
465
00:19:27,360 –> 00:19:29,309
کنند، بنابراین اکنون ما یک
466
00:19:29,309 –> 00:19:31,650
سیستم ثبت نام بسیار خوب داریم. باید
467
00:19:31,650 –> 00:19:34,200
یک سیستم ورود ایجاد کنیم تا کاربران ما
468
00:19:34,200 –> 00:19:36,299
که حساب ایجاد کردهاند بتوانند وارد شوند
469
00:19:36,299 –> 00:19:38,010
و از سیستم خارج شوند و اکنون برای انجام این کار
470
00:19:38,010 –> 00:19:40,380
از یک پسوند فلاسک دیگر استفاده میکنیم و
471
00:19:40,380 –> 00:19:42,990
این پسوند فلاسک ورود نامیده میشود و
472
00:19:42,990 –> 00:19:44,909
مدیریت کاربر را واقعاً آسان میکند.
473
00:19:44,909 –> 00:19:48,690
جلسات پس بیایید ابتدا آن را با
474
00:19:48,690 –> 00:19:51,600
استفاده از pip نصب کنیم، بنابراین من می خواهم
475
00:19:51,600 –> 00:19:53,400
خط فرمان خود را در اینجا باز کنم و
476
00:19:53,400 –> 00:19:56,010
با زدن ctrl C و
477
00:19:56,010 –> 00:19:57,840
پاک کردن آن، سرور را خاموش می کنم و می توانیم
478
00:19:57,840 –> 00:20:01,860
فقط با گفتن pip install flask login و نصب آن را نصب کنیم.
479
00:20:01,860 –> 00:20:05,820
هنگامی که آن را نصب
480
00:20:05,820 –> 00:20:07,769
کردیم، صفحه را در اینجا پاک می کنم و اکنون
481
00:20:07,769 –> 00:20:11,039
بیایید این را به مقداردهی اولیه برنامه خود اضافه
482
00:20:11,039 –> 00:20:12,570
کنیم، همانطور که با سایر برنامه های افزودنی خود انجام دادیم،
483
00:20:12,570 –> 00:20:14,720
بنابراین
484
00:20:14,720 –> 00:20:18,000
کد خود را در اینجا باز می کنم و به فایل PI آن نقطه می روم.
485
00:20:18,000 –> 00:20:20,250
درون پدر ما ckage و درست
486
00:20:20,250 –> 00:20:22,409
مانند سایر برنامههای افزودنی ما میتوانیم این را وارد کنیم
487
00:20:22,409 –> 00:20:24,419
و سپس آن را مقداردهی اولیه کنیم، بنابراین کلاسی که
488
00:20:24,419 –> 00:20:26,070
میخواهیم از این
489
00:20:26,070 –> 00:20:29,909
پسوند وارد کنیم، بنابراین از ورود به سیستم flask میخواهیم
490
00:20:29,909 –> 00:20:33,690
مدیر ورود به کلاس را وارد کنیم و اکنون
491
00:20:33,690 –> 00:20:35,460
میتوانیم یک نمونه از آن ایجاد کنیم.
492
00:20:35,460 –> 00:20:37,679
من آن را در آنجا و پایین
493
00:20:37,679 –> 00:20:40,970
دیگر برنامه های افزودنی خود ذخیره می کنم، می گویم login
494
00:20:40,970 –> 00:20:44,399
manager برابر با login manager است و
495
00:20:44,399 –> 00:20:47,669
برنامه را به آن کلاس منتقل خواهم کرد،
496
00:20:47,669 –> 00:20:49,620
بنابراین اکنون ما آماده استفاده از این
497
00:20:49,620 –> 00:20:52,289
مدیر ورود در برنامه خود هستیم. روشی
498
00:20:52,289 –> 00:20:54,690
که کار می کند این است که ما برخی از
499
00:20:54,690 –> 00:20:57,090
عملکردها را به مدل های پایگاه داده خود اضافه می کنیم و
500
00:20:57,090 –> 00:20:59,789
سپس تمام جلسات
501
00:20:59,789 –> 00:21:02,039
در پس زمینه را برای ما مدیریت می کند، بنابراین بیایید
502
00:21:02,039 –> 00:21:04,350
مدل پایگاه داده خود را باز کنیم، بنابراین من
503
00:21:04,350 –> 00:21:06,750
این فایل stop py مدل را در اینجا و ابتدا باز می کنم
504
00:21:06,750 –> 00:21:08,370
. تمام چیزی که ما نیاز داریم تا مدیر ورود خود را
505
00:21:08,370 –> 00:21:11,100
از بسته خود وارد کنیم و این نمی تواند
506
00:21:11,100 –> 00:21:13,649
از همان مکان
507
00:21:13,649 –> 00:21:15,510
نمونه DB ما می آید، بنابراین می توانیم آن را به واردات خود اضافه کنیم،
508
00:21:15,510 –> 00:21:20,130
بنابراین من مدیر ورود را
509
00:21:20,130 –> 00:21:21,990
به واردات خود در بسته وبلاگ فلش خود اضافه
510
00:21:21,990 –> 00:21:23,880
می کنم. و در حال حاضر ما نیاز به ایجاد یک
511
00:21:23,880 –> 00:21:26,639
تابع را با یک دکوراتور به نام
512
00:21:26,639 –> 00:21:29,549
بارگذار کاربر خوردم و این برای بارگیری مجدد
513
00:21:29,549 –> 00:21:31,740
کاربر از شناسه کاربری ذخیره شده در این
514
00:21:31,740 –> 00:21:33,929
جلسه است و من به سادگی این را از
515
00:21:33,929 –> 00:21:35,820
اسناد آنها در وب سایت برنامه های افزودنی
516
00:21:35,820 –> 00:21:38,190
می گیرم بنابراین اینطور نیست که این را حفظ کرده باشم
517
00:21:38,190 –> 00:21:39,960
، فقط یک چیز است که شما باید
518
00:21:39,960 –> 00:21:42,000
برنامه را برای
519
00:21:42,000 –> 00:21:44,130
کار کردن برنامه افزودنی ایجاد کنید زیرا برنامه افزودنی باید
520
00:21:44,130 –> 00:21:46,950
بداند چگونه یکی از کاربران شما را با شناسه پیدا کند،
521
00:21:46,950 –> 00:21:49,830
بنابراین ابتدا اجازه دهید این تابع تزئین شده
522
00:21:49,830 –> 00:21:53,010
را ایجاد کنیم تا بتوانیم یک تابع
523
00:21:53,010 –> 00:21:56,399
به نام کاربر بارگذاری ایجاد کنیم که شناسه کاربر را به
524
00:21:56,399 –> 00:21:57,960
عنوان آرگومان می گیرد. بنابراین من اکنون این کار را انجام می دهم
525
00:21:57,960 –> 00:22:02,940
تا کاربر را بارگیری کنم که یک شناسه کاربری را به عنوان آرگومان ما در
526
00:22:02,940 –> 00:22:05,010
نظر بگیرد و سپس ما می توانیم کاربر را
527
00:22:05,010 –> 00:22:07,440
برای آن شناسه برگردانیم و اگر از
528
00:22:07,440 –> 00:22:09,600
چند ویدیوی ویدیویی قبل به خاطر دارید، می توانیم این کار را
529
00:22:09,600 –> 00:22:12,149
با روش query dot get انجام دهیم.
530
00:22:12,149 –> 00:22:14,940
من می گویم بازگشت کاربر dot
531
00:22:14,940 –> 00:22:17,850
query dot get و ما می خواهیم
532
00:22:17,850 –> 00:22:20,370
کاربر را با آن شناسه دریافت کنیم و بیایید آن را به
533
00:22:20,370 –> 00:22:23,070
یک عدد صحیح بریزیم تا مطمئن شویم، بنابراین ما
534
00:22:23,070 –> 00:22:26,550
این شناسه کاربری را در اینجا ارسال می کنیم و آن را ذخیره می کنیم
535
00:22:26,550 –> 00:22:28,500
و اکنون اجازه دهید این تابع را طوری تزئین کنیم.
536
00:22:28,500 –> 00:22:30,540
که پسوند می داند th در
537
00:22:30,540 –> 00:22:33,270
اینجا تابعی است که کاربر را با یک شناسه دریافت می کند و
538
00:22:33,270 –> 00:22:36,120
ما باید از این قرارداد نامگذاری استفاده
539
00:22:36,120 –> 00:22:39,660
کنیم بنابراین می گوییم علامت @ را برای
540
00:22:39,660 –> 00:22:41,940
مشخص کردن دکوراتور قرار
541
00:22:41,940 –> 00:22:46,680
542
00:22:46,680 –> 00:22:48,570
می دهیم. تقریباً این برنامه افزودنی را
543
00:22:48,570 –> 00:22:50,220
راهاندازی کردهایم، اما یک کار دیگر وجود دارد که
544
00:22:50,220 –> 00:22:52,320
باید انجام دهیم تا برنامه افزودنی
545
00:22:52,320 –> 00:22:55,560
انتظار داشته باشد که مدل کاربر شما دارای
546
00:22:55,560 –> 00:22:57,780
ویژگیها و روشهایی باشد که
547
00:22:57,780 –> 00:23:01,110
انتظار میرود دقیقاً یکی از آنها
548
00:23:01,110 –> 00:23:03,420
احراز هویت شده باشد که اگر درست باشد باز میگردد.
549
00:23:03,420 –> 00:23:05,730
آنها اعتبارنامه های معتبری را ارائه کرده اند که
550
00:23:05,730 –> 00:23:09,360
دیگری نامیده می شود فعال است دیگری
551
00:23:09,360 –> 00:23:11,940
نامیده می شود ناشناس است و آخرین
552
00:23:11,940 –> 00:23:15,120
مورد روشی است به نام get ID اکنون ما می توانیم
553
00:23:15,120 –> 00:23:17,910
همه اینها را خودمان اضافه کنیم اما این به قدری
554
00:23:17,910 –> 00:23:20,070
رایج است که پسوند
555
00:23:20,070 –> 00:23:22,470
یک کلاس ساده در اختیار ما قرار می دهد که ما میتوان
556
00:23:22,470 –> 00:23:24,000
از آن ارث برد که ما همه
557
00:23:24,000 –> 00:23:26,070
این ویژگیها و متدهای مورد نیاز را برای خود اضافه
558
00:23:26,070 –> 00:23:29,250
میکنیم، بنابراین میتوانیم به سادگی این کلاس را از
559
00:23