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