در این مطلب، ویدئو دکمه Html تصویر را آپلود کنید و آن را با اسکریپت پایتون پردازش کنید – آخرین 2021 قسمت 2.1 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:17:12
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:01,870 –> 00:00:07,579
[موسیقی]
2
00:00:09,200 –> 00:00:11,840
سلام بچه ها و به کانال یوتیوب akinon خوش آمدید
3
00:00:11,840 –> 00:00:13,599
4
00:00:13,599 –> 00:00:16,720
در این ویدیو خواهیم دید که چگونه
5
00:00:16,720 –> 00:00:20,880
یک تصویر را در html آپلود کنیم و آن را با استفاده از یک اسکریپت پایتون پردازش کنیم،
6
00:00:20,880 –> 00:00:22,400
7
00:00:22,400 –> 00:00:24,720
همانطور که می دانید پایتون یک
8
00:00:24,720 –> 00:00:27,359
زبان برنامه نویسی عالی است که می توان از آن برای
9
00:00:27,359 –> 00:00:30,640
ترسیم توابع استفاده کرد. کد html
10
00:00:30,640 –> 00:00:33,440
ما دو کتابخانه داریم، بنابراین
11
00:00:33,440 –> 00:00:36,640
در این ویدیو از فریم ورک فلش استفاده
12
00:00:36,640 –> 00:00:39,760
خواهیم کرد و خواهیم دید که چگونه تصاویر را آپلود کنیم،
13
00:00:39,760 –> 00:00:42,239
بنابراین کاری که من انجام دادم این است که به سادگی یک
14
00:00:42,239 –> 00:00:45,440
کد html ساده دریافت کردم که همگی می گوید doctype
15
00:00:45,440 –> 00:00:47,760
html و یک عنوان دارد.
16
00:00:47,760 –> 00:00:51,199
مثال آپلود فایل فلاسک پایتون
17
00:00:51,199 –> 00:00:53,760
و من تگ های خاصی مانند
18
00:00:53,760 –> 00:00:56,079
انتخاب یک فایل برای آپلود ایجاد کرده ام و
19
00:00:56,079 –> 00:00:58,640
یک فرم ساده ایجاد کرده ام که به ما امکان می دهد
20
00:00:58,640 –> 00:01:02,480
روش ارسال و ورودی یک فایل
21
00:01:02,480 –> 00:01:05,280
و در نهایت یک نوع ورودی ارسال
22
00:01:05,280 –> 00:01:07,600
با مقدار ارسال کنید بنابراین من در
23
00:01:07,600 –> 00:01:10,320
پوشه پروژه قرار گرفتهام و کاری که
24
00:01:10,320 –> 00:01:13,200
انجام دادهام این است که دو پوشه ایجاد کردهام یکی
25
00:01:13,200 –> 00:01:15,360
ثابت است که تمام تصاویر و غیره را در خود نگه
26
00:01:15,360 –> 00:01:17,840
میدارد و قالبهایی که
27
00:01:17,840 –> 00:01:20,880
کد html را نگه میدارند، بنابراین اگر پوشه را باز کنم در داخل قالبها قرار میگیرد.
28
00:01:20,880 –> 00:01:23,360
main.html به همین سادگی است
29
00:01:23,360 –> 00:01:25,840
یک فایل را برای آپلود انتخاب کنید، بنابراین بیایید
30
00:01:25,840 –> 00:01:27,520
بگوییم اگر من یک فایل را انتخاب کنم
31
00:01:27,520 –> 00:01:29,920
و اگر من وارد اسنادم شوم و
32
00:01:29,920 –> 00:01:31,520
یک فایل ضبط کنم
33
00:01:31,520 –> 00:01:33,920
و آن را آپلود کنم و این مورد را ارسال
34
00:01:33,920 –> 00:01:36,640
کنم واقعاً اتفاق می افتد زیرا ما
35
00:01:36,640 –> 00:01:39,439
هیچ اسکریپت پایتون اضافه نکرده ایم، بنابراین خواهیم دید
36
00:01:39,439 –> 00:01:40,880
که چگونه برای انجام این
37
00:01:40,880 –> 00:01:42,479
کار، ابتدا اجازه دهید
38
00:01:42,479 –> 00:01:44,399
یک بار دیگر به ویرایشگر کد خود برویم
39
00:01:44,399 –> 00:01:45,520
و اکنون
40
00:01:45,520 –> 00:01:47,759
اگر به فایل اصلی dot py
41
00:01:47,759 –> 00:01:50,399
که ایجاد کردهام بروم، کاملاً خالی است، بنابراین
42
00:01:50,399 –> 00:01:52,479
در اینجا جایی است که ما از
43
00:01:52,479 –> 00:01:53,680
کتابخانه flask استفاده خواهیم کرد،
44
00:01:53,680 –> 00:01:55,840
اگر شما از آن استفاده نکردهاید. کتابخانه flask نصب شده
45
00:01:55,840 –> 00:01:58,320
تنها کاری که باید انجام دهید این است که به خط فرمان خود بروید
46
00:01:58,320 –> 00:02:01,600
و pip install
47
00:02:01,600 –> 00:02:04,719
flask را تایپ کنید، به همین سادگی است که
48
00:02:04,719 –> 00:02:06,000
تمام وابستگی های مورد نیاز را نصب می کند
49
00:02:06,000 –> 00:02:08,399
و شما در عرض چند ثانیه این کار را انجام می دهید
50
00:02:08,399 –> 00:02:09,440
51
00:02:09,440 –> 00:02:11,520
اولین چیزی که من کتابخانه flask را وارد می کنم.
52
00:02:11,520 –> 00:02:14,239
چیزی که من می گویم از import flask است
53
00:02:14,239 –> 00:02:15,360
54
00:02:15,360 –> 00:02:18,319
و f باید در این مورد بزرگ باشد
55
00:02:18,319 –> 00:02:20,720
و اکنون یک شی flask ایجاد می
56
00:02:20,720 –> 00:02:23,120
کنم و آن را به عنوان app می نامم، بنابراین برنامه اساساً
57
00:02:23,120 –> 00:02:24,879
تمام ویژگی های برنامه flask را به ارث می برد
58
00:02:24,879 –> 00:02:26,400
59
00:02:26,400 –> 00:02:28,640
و در dunder magic من آن را به عنوان name so basi نام خواهم برد
60
00:02:28,640 –> 00:02:30,000
61
00:02:30,000 –> 00:02:32,560
به عنوان مثال، به برنامه اشاره می کند
62
00:02:32,560 –> 00:02:34,640
و اکنون کاری که من انجام خواهم داد این است که مسیری ایجاد می کنم
63
00:02:34,640 –> 00:02:37,360
که اساساً یک
64
00:02:37,360 –> 00:02:39,680
تابع را به کد html نگاشت می کند، بنابراین برای آن
65
00:02:39,680 –> 00:02:41,200
می گویم
66
00:02:41,200 –> 00:02:44,080
برنامه کلاس برنامه ای را که در مسیر نقطه بالایی ایجاد کردیم،
67
00:02:44,080 –> 00:02:47,280
بنابراین یک روش دارد. route و اکنون
68
00:02:47,280 –> 00:02:49,760
میتوانیم نقطهای برای پشت سر گذاشتن قرار دهیم در
69
00:02:49,760 –> 00:02:52,800
این مورد، من اسلش را به خانه میزنم،
70
00:02:52,800 –> 00:02:54,560
بنابراین اساساً من را به
71
00:02:54,560 –> 00:02:56,640
خانه اسلش میکنم و بدیهی است که از آنجایی که
72
00:02:56,640 –> 00:02:58,560
فایل خاصی را آپلود میکنیم، روش
73
00:02:58,560 –> 00:03:01,440
باید دریافت و همچنین پست
74
00:03:01,440 –> 00:03:03,280
کردن در داخل متدها باشد. من یک
75
00:03:03,280 –> 00:03:06,159
لیست پایتون ایجاد می کنم و پست را تایپ می کنم
76
00:03:06,159 –> 00:03:08,000
و همچنین دریافت را تایپ می کنم
77
00:03:08,000 –> 00:03:09,760
بنابراین هر زمان که هر متدی را در
78
00:03:09,760 –> 00:03:12,640
flask get ایجاد می کنید پیش فرض خواهد بود اما اگر
79
00:03:12,640 –> 00:03:14,959
می خواهید پست اضافه کنید باید آن
80
00:03:14,959 –> 00:03:17,840
را به همین سادگی در قسمت route اضافه کنید. از آنجا که
81
00:03:17,840 –> 00:03:19,840
اکنون من به سادگی یک تابع ایجاد می
82
00:03:19,840 –> 00:03:21,920
کنم و آن را به عنوان تصویر آپلود می نامم، بنابراین
83
00:03:21,920 –> 00:03:24,720
اساساً آنچه اتفاق می افتد این است که مسیر
84
00:03:24,720 –> 00:03:26,799
تابع را
85
00:03:26,799 –> 00:03:29,360
تزئین می کند.
86
00:03:29,360 –> 00:03:31,280
87
00:03:31,280 –> 00:03:33,840
می گویند بازگشت است بنابراین من می خواهم یک
88
00:03:33,840 –> 00:03:35,680
قالب قالب را برگردانم ht بنابراین برای این کار باید
89
00:03:35,680 –> 00:03:37,360
از یک تابع به نام الگوی رندر استفاده کنیم
90
00:03:37,360 –> 00:03:39,360
که اساساً
91
00:03:39,360 –> 00:03:41,920
الگوهای مرتبط با html را برمی گرداند و اکنون کاری که انجام می
92
00:03:41,920 –> 00:03:44,159
دهیم این است که به سادگی آن را برمی
93
00:03:44,159 –> 00:03:46,080
گردانیم تا قالب رندر را برگردانیم و در داخل
94
00:03:46,080 –> 00:03:48,400
آن نام فایل html را مشخص می کنیم.
95
00:03:48,400 –> 00:03:50,840
که در این مورد اصلی است.
96
00:03:50,840 –> 00:03:53,200
97
00:03:53,200 –> 00:03:55,200
98
00:03:55,200 –> 00:03:57,439
99
00:03:57,439 –> 00:03:59,439
100
00:03:59,439 –> 00:04:02,400
101
00:04:02,400 –> 00:04:05,439
102
00:04:05,439 –> 00:04:08,239
از 5000 و که در
103
00:04:08,239 –> 00:04:10,080
این مورد خوب به نظر می رسد
104
00:04:10,080 –> 00:04:12,319
و همانطور که می بینید
105
00:04:12,319 –> 00:04:14,560
سرور بدون هیچ مشکلی اجرا می شود و
106
00:04:14,560 –> 00:04:16,639
روی هاست محلی اجرا می شود بنابراین اجازه دهید من فقط
107
00:04:16,639 –> 00:04:18,000
108
00:04:18,000 –> 00:04:19,839
لینک لوکال هاست را کپی کنم
109
00:04:19,839 –> 00:04:23,199
و به مرورگر وب خود برگردم
110
00:04:23,199 –> 00:04:25,440
این را کپی کرده و آن را روشن کنم. وبسایت
111
00:04:25,440 –> 00:04:27,440
بدیهی است که میخواهد بگوید یافت نشد،
112
00:04:27,440 –> 00:04:29,919
زیرا ما هیچ
113
00:04:29,919 –> 00:04:32,400
مسیر پیوندی از پیوند سرور داده
114
00:04:32,400 –> 00:04:34,560
شده اضافه نکردهایم، ما یک مسیر اسلش خانه را اضافه کردهایم، بنابراین باید آن را
115
00:04:34,560 –> 00:04:36,800
به سادگی در آرگومانها
116
00:04:36,800 –> 00:04:39,120
قرار دهیم تا اسلش را به خانه بگذاریم
117
00:04:39,120 –> 00:04:41,759
و فوقالعاده دریافت کنیم. همون فایل html e
118
00:04:41,759 –> 00:04:43,199
اما بدیهی است که هنوز هیچ چیز کار
119
00:04:43,199 –> 00:04:44,720
نمی کند زیرا ما هیچ عملکردی اضافه نکرده ایم،
120
00:04:44,720 –> 00:04:47,120
بنابراین بیایید کار را از سر بگیریم،
121
00:04:47,120 –> 00:04:48,639
122
00:04:48,639 –> 00:04:50,080
بنابراین اولین کاری که باید انجام دهیم این است
123
00:04:50,080 –> 00:04:52,160
که باید بررسی کنیم که آیا درخواست
124
00:04:52,160 –> 00:04:54,960
یک پست است یا یک دریافت برای که اگر
125
00:04:54,960 –> 00:04:56,720
درخواست یک پست
126
00:04:56,720 –> 00:04:58,880
باشد اگر درخواست یک پست باشد، بدیهی است که
127
00:04:58,880 –> 00:05:01,360
ما باید به تصویر دسترسی داشته باشیم و
128
00:05:01,360 –> 00:05:03,280
آن را در فایل های خود ذخیره کنیم،
129
00:05:03,280 –> 00:05:07,120
بنابراین آنچه من می گویم این است که اگر
130
00:05:07,520 –> 00:05:10,639
روش نقطه درخواست
131
00:05:10,639 –> 00:05:12,080
برابر با
132
00:05:12,080 –> 00:05:13,120
ارسال
133
00:05:13,120 –> 00:05:15,440
باشد، در صورتی که ما به دنبال آن هستیم.
134
00:05:15,440 –> 00:05:17,919
پس من یک تصویر ایجاد می کنم
135
00:05:17,919 –> 00:05:20,400
و برای آن می گویم تصویر به عنوان یک
136
00:05:20,400 –> 00:05:23,759
متغیر برابر است با درخواست
137
00:05:23,759 –> 00:05:24,400
138
00:05:24,400 –> 00:05:26,479
فایل های نقطه ای خوب
139
00:05:26,479 –> 00:05:29,120
و مقدار کلید فایل خواهد بود
140
00:05:29,120 –> 00:05:30,639
بنابراین قبل از اینکه سعی کنید بفهمید
141
00:05:30,639 –> 00:05:33,120
این درخواست و این فایل ها به چه معناست نگران
142
00:05:33,120 –> 00:05:34,080
143
00:05:34,080 –> 00:05:36,560
نباشید flask تابعی وجود دارد که
144
00:05:36,560 –> 00:05:39,680
به عنوان درخواست شناخته می شود یا می توانم آن را
145
00:05:39,680 –> 00:05:40,400
یک
146
00:05:40,400 –> 00:05:43,520
روش نیز بنامم، بنابراین اساساً آنچه که درخواست انجام
147
00:05:43,520 –> 00:05:46,000
درخواست می دهد برای برگرداندن هر داده ای
148
00:05:46,000 –> 00:05:48,639
که از طریق وب سایت html ارسال می شود مفید است، بنابراین
149
00:05:48,639 –> 00:05:50,560
کاری که ما انجام می دهیم این است که ما در حال
150
00:05:50,560 –> 00:05:53,120
ارسال یک درخواست هستیم. تصویر به وب سایت html و
151
00:05:53,120 –> 00:05:55,680
ما دسترسی داریم آن را با استفاده از
152
00:05:55,680 –> 00:05:58,000
متد فایلهایی که در شی درخواست وجود
153
00:05:58,000 –> 00:05:59,039
دارد
154
00:05:59,039 –> 00:06:01,280
و شی درخواست به عنوان
155
00:06:01,280 –> 00:06:04,319
فایلهای روشی که در آن
156
00:06:04,319 –> 00:06:06,880
به کلید فایل دسترسی داریم، استفاده کنید، بنابراین به محض
157
00:06:06,880 –> 00:06:09,440
دسترسی به فایل کلید، مقدار نام فایل را پیدا میکنیم،
158
00:06:09,440 –> 00:06:12,000
به عنوان مثال اگر نام فایل
159
00:06:12,000 –> 00:06:14,880
capture.jpg
160
00:06:14,880 –> 00:06:17,280
کلمه کلیدی فایل به آن مقدار اشاره می
161
00:06:17,280 –> 00:06:20,400
کند، بنابراین ما اساساً
162
00:06:20,400 –> 00:06:22,560
داده ها را از یک فرهنگ لغت برش می دهیم یا فقط برای آشناتر نگه داشتن آن اطلاعات را از یک فرهنگ لغت به دست می آوریم.
163
00:06:22,560 –> 00:06:24,560
164
00:06:24,560 –> 00:06:27,360
165
00:06:27,360 –> 00:06:31,360
فایلها خوب است،
166
00:06:31,360 –> 00:06:34,319
بنابراین من فقط میخواهم آن روش را چاپ کنم
167
00:06:34,319 –> 00:06:36,000
و فعلاً اجازه دهید فقط نظر بدهم این
168
00:06:36,000 –> 00:06:39,280
کد دوباره سرور
169
00:06:39,280 –> 00:06:41,440
را اجرا کند و فوقالعاده اجرا میشود، اجازه دهید فقط
170
00:06:41,440 –> 00:06:42,960
وبسایت را دوباره بارگذاری
171
00:06:42,960 –> 00:06:45,600
کنم، اجازه دهید یک فایل انتخاب کنم و تصویر ضبط را آپلود کنم
172
00:06:45,600 –> 00:06:48,400
173
00:06:48,400 –> 00:06:50,240
و اگر کلیک کردم در هنگام ارسال
174
00:06:50,240 –> 00:06:52,479
همانطور که در اینجا می بینید ما یک
175
00:06:52,479 –> 00:06:55,440
فرهنگ لغت تغییر ناپذیر دریافت می کنیم که دارای یک کلید
176
00:06:55,440 –> 00:06:56,479
فایل است
177
00:06:56,479 –> 00:06:59,280
و این فایل کلید همانطور که می بینید
178
00:06:59,280 –> 00:07:01,840
به نام فایل اشاره می کند که
179
00:07:01,840 –> 00:07:04,160
capture.jpg است،
180
00:07:04,160 –> 00:07:06,080
بنابراین اکنون که
181
00:07:06,080 –> 00:07:08,319
آنچه را که باید بررسی کنیم انجام دادیم. اکنون است اگر کاربر
182
00:07:08,319 –> 00:07:10,479
یک
183
00:07:10,479 –> 00:07:12,880
فایل خالی را وارد نکند که نامی ندارد، بنابراین
184
00:07:12,880 –> 00:07:15,759
اساساً چه می گوییم اگر یک
185
00:07:15,759 –> 00:07:18,240
تصویر دارای روشی است که به نام فایل نامیده می شود،
186
00:07:18,240 –> 00:07:19,440
خوب
187
00:07:19,440 –> 00:07:22,800
تصویر نقطه نام فایل
188
00:07:22,880 –> 00:07:25,039
برابر با
189
00:07:25,039 –> 00:07:26,960
یک علامت نقل قول به معنای یک
190
00:07:26,960 –> 00:07:28,000
رشته خالی است،
191
00:07:28,000 –> 00:07:30,479
پس ما به سادگی
192
00:07:30,479 –> 00:07:33,520
بیانیه ای را چاپ می کند که می گوید فایل با نام
193
00:07:33,520 –> 00:07:35,680
نام فایل نامعتبر است،
194
00:07:35,680 –> 00:07:37,759
این اساساً برای ما قابل درک است
195
00:07:37,759 –> 00:07:40,080
که وقتی کد را اشکال زدایی می کنیم
196
00:07:40,080 –> 00:07:42,319
و به من اجازه دهید فقط بخشی
197
00:07:42,319 –> 00:07:45,199
از پنجره خروجی را پایین بیاورم و
198
00:07:45,199 –> 00:07:47,120
اساساً یک درخواست را برگردانم
199
00:07:47,120 –> 00:07:49,680
که دوباره من را به
200
00:07:49,680 –> 00:07:52,400
وبسایتی که از آنجا مجدداً راهاندازی کردم، برگردانید، بنابراین
201
00:07:52,400 –> 00:07:54,479
اساساً آنچه میخواهیم انجام دهیم این است که
202
00:07:54,479 –> 00:07:57,440
اگر کاربر نام فایلی را وارد کند که
203
00:07:57,440 –> 00:08:00,400
درخواست فایل پوچ ندارد،
204
00:08:00,400 –> 00:08:02,560
من را دوباره به وبسایت فعلی هدایت میکند،
205
00:08:02,560 –> 00:08:04,960
بنابراین کاربر مجبور است
206
00:08:04,960 –> 00:08:07,360
تصویر را یک بار دیگر آپلود کنم، بنابراین من
207
00:08:07,360 –> 00:08:08,879
باید از یک تابع به نام
208
00:08:08,879 –> 00:08:11,440
redirect استفاده کنم که من را به پیوند سرور می برد
209
00:08:11,440 –> 00:08:12,479
210
00:08:12,479 –> 00:08:15,440
و کاری که من انجام خواهم داد این است که آدرس نقطه ای را درخواست کنم،
211
00:08:15,440 –> 00:08:17,360
اساساً ما به همان آدرس اینترنتی می
212
00:08:17,360 –> 00:08:19,840
رویم که در آن بودیم. بدیهی است که من از
213
00:08:19,840 –> 00:08:21,840
این روش به نام ریدایرکت
214
00:08:21,840 –> 00:08:24,479
استفاده می کنم که به این معنی است که باید آن را از اینجا وارد کنم،
215
00:08:24,479 –> 00:08:26,479
بنابراین اکنون متغیری به نام نام فایل ایجاد می کنیم
216
00:08:26,479 –> 00:08:28,720
و کاری که انجام می دهیم این است
217
00:08:28,720 –> 00:08:30,560
که سعی می کنیم یک نام فایل امن ایجاد کنیم
218
00:08:30,560 –> 00:08:32,880
که از آن وارد می شود. کاربر
219
00:08:32,880 –> 00:08:34,320
برای جلوگیری
220
00:08:34,320 –> 00:08:36,559
از جلوگیری از هر نوع هک یا
221
00:08:36,559 –> 00:08:38,399
فیشینگ به عنوان مثال،
222
00:08:38,399 –> 00:08:40,000
بنابراین کاری که ما انجام خواهیم داد این