Django_Web

[Django] 파일 μ—…λ‘œλ“œ κΈ€λ‘œλ²Œ μ„œλΉ„μŠ€ κ΅¬ν˜„ν•˜κΈ°

λ„μΊλ¦¬πŸ± 2021. 6. 9. 23:29
λ°˜μ‘ν˜•

https://github.com/JiYoungDo/Capstone-Design

 

✏️  Rough Logic

μ‚¬μš©μžλŠ” json νŒŒμΌμ„ μ—…λ‘œλ“œλ₯Ό ν•œλ‹€.

json νŒŒμΌμ„ μ—…λ‘œλ“œ λ°›μœΌλ©΄ "μ§  μ•Œκ³ λ¦¬μ¦˜"을 λŒλ €μ„œ, "first_send" 와 " last_recv" λ₯Ό μ•Œμ•„λ‚Έλ‹€. 

μ‚¬μš©μžκ°€ ν•΄λ‹Ή 값을 μ €μž₯ν•œλ‹€λŠ” λ²„νŠΌμ„ λˆ„λ₯΄λ©΄, 이 두가지 κ°’(first_send, last_recv)을 κ°–λŠ” 클래슀(λͺ¨λΈ)둜 μ €μž₯ν•œλ‹€.

μ‚¬μš©μžλŠ” ν•΄λ‹Ή λ°μ΄ν„°λ§ˆλ‹€ 이름을 λΆ™μ—¬μ„œ 각각 μ €μž₯ν•  수 μžˆλ‹€. 

μ €μž₯ν•œ 값듀을 ν†΅ν•΄μ„œ κ·Έλž˜ν”„λ₯Ό 그릴 수 μžˆλ‹€. 

β˜‡

 μ•„λ‹ˆλ©΄, μ–΄λ ˆμ΄λ₯Ό λ‹΄λŠ” ν•œ 객체λ₯Ό λ§Œλ“€κ³  거기에 μ›ν•˜λŠ” 값듀을 λͺ¨λ‘ λ„£μœΌλ©΄ κ·Έ 객체에 λŒ€ν•΄μ„œ κ·Έλž˜ν”„λ₯Ό λͺ¨λ‘ κ·Έλ¦¬λŠ”κ±΄? 그게 깔끔할것 같은데?

 

μ•„ν•˜...λ‘œκ·ΈμΈλ„ μžˆμ–΄μ•Ό κ² λ‹€. μ•„λ¬΄λ‚˜ μ™€μ„œ 파일 λ‹€ μ—…λ‘œλ“œ ν•˜λ©΄ λͺ¨λ‘μ˜ 데이터가 μ‹ΈμΌν…Œλ‹ˆκΉŒ. 

μ–΄λ ˆμ΄λ₯Ό λ‹΄λŠ” ν•œ 객체에 λΉ„λ°€λ²ˆν˜Έ μ„€μ •..은..?

 

 

πŸ‘©πŸ»‍πŸ’» κ³Όμ •

β–  url μ„€μ • 및 html μ„€μ •

μ–΄λ–€μ‹μœΌλ‘œ 호좜 λ˜λŠ”κ°€!

 

β–   μ—…λ‘œλ“œ 받은 νŒŒμΌμ„ 닡을 '/media/'

settings.py
import μ‹œμ— 주의! 

 

β–   FileSystems Storage

κ΄€λ ¨λœ μ—¬λŸ¬ λ©”μ†Œλ“œ (save, delete ..) λŠ” μ•„λž˜ 참고에 적어 놓은 "docs.djangoproject.com" 여기에 μ•„μ£Ό μžμ„Ένžˆ μ ν˜€μžˆμœΌλ‹ˆ, 

λ©”μ†Œλ“œμ˜ 바이블? 이라고 μƒκ°ν•˜λ©° μ°Έκ³ ν•˜λ©΄ 도움이 많이 λœλ‹€!!

 

μš” FileSystemsStorage의 μž₯μ μœΌλ‘œλŠ” 같은 이름, 같은 νŒŒμΌμ„ μ—…λ‘œλ“œ ν•  λ•Œμ— κΈ°μ‘΄ νŒŒμΌμ„ μ˜€λ²„λΌμ΄λ”© ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 점이 μžˆλ‹€. (예λ₯Ό λ“€μ–΄ μ„€λͺ…ν•˜λ©΄ 첫번째둜 cat1.png λ₯Ό 올리고 λ‘λ²ˆμ§Έλ‘œ λ˜‘κ°™μ€ 것을 올리면 λ‘λ²ˆμ§Έλ‘œ 올린 파일 λͺ…은 랜덀으둜 μ²˜λ¦¬λœλ‹€.)

 

 

β–   PythonAnywhere 가상 머신에도 λ˜‘κ°™μ΄ ν•΄μ€€λ‹€! κ·Έλž˜μ•Ό κΈ€λ‘œλ²Œ μ„œλΉ„μŠ€κ°€ κ°€λŠ₯ν•˜λ‹ˆκΉŒ!

μš°μ„  λ‘œμ»¬μ—μ„œ μž‘μ—…ν•œ 것을 μžμ‹ μ˜ λ ˆν¬μ§€ν„°λ¦¬μ— ν‘Έμ‹œν•΄μ£Όκ³ , 

PythonAnywhere 가상 λ¨Έμ‹ μ—μ„œ pull ν•΄μ€€λ‹€μŒ, manage.py λ₯Ό migrate ν•΄μ£Όλ©΄ λœλ‹€.

 

μ•„λž˜ μ‚¬μ§„μ—μ„œμ²˜λŸΌ λŒ€μ‹œλ³΄λ“œ "Files" 에 λ“€μ–΄κ°€μžˆλŠ” λ‚΄κ°€ μ €μž₯ν•œ 이미지 파일이 μžˆλŠ” 것을 확인할 수 μžˆλ‹€.

json 도 png 도 μž˜λ“€μ–΄κ°„λ‹€. (json 이 μ£Ό λͺ©μ )

 

κ·Έ λˆ„κ΅¬λ‚˜ μ•„λž˜ 링크λ₯Ό λ“€μ–΄κ°€λ©΄ μ•„λž˜ 사진 같은 κ·€μ—¬μš΄ 체리(μš°λ¦¬μ§‘ λƒ₯μ΄πŸ’) λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“Œ μž₯고의 media url을 μ„€μ •ν•΄ λ†“μ•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€!  μ•„λž˜ λΆ€λΆ„! 

μ£Όμ˜ν• μ ! 디렉토리 λͺ…이 media μ—¬μ„œ κ·Έ λ””λ ‰ν† λ¦¬λ‘œ μ ‘κ·Όν•˜λŠ” κ°œλ…μ΄ μ ˆλŒ€ μ ˆλŒ€ μ•„λ‹ˆλžλ‹ˆλ‹Ή) 

 

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

 

(TMI ) VS Code 볡뢙 색이 λ„ˆλ¬΄ μ΄μ˜λ„€μš”. 

http://carrie.pythonanywhere.com/media/wink.png

 

 

 

λ˜ν•œ views μ—μ„œ 이미지λ₯Ό μ €μž₯ν•  λ•Œ ν•΄λ‹Ή url 을 λ³€μˆ˜μ— λ„£μ–΄ λΉΌμ„œ, λ Œλ”λ§μ‹œ html 에 보내주고, 

html μ—μ„œ μ•„λž˜μ™€ 같이 μž‘μ„± ν•˜λ©΄ μ•„λž˜ μ‚¬μ§„μ²˜λŸΌ ν΄λ¦­ν•˜λ©΄ 사진을 λ³Ό 수 μžˆκ²Œλ„ ν•  수 μžˆλ‹€. 

{% if url %}

<p>Uploaded file : <a href="{{url}}">{{ url }}</a></p>

{% endif %}

 


πŸ‘“ μ°Έκ³ 

https://www.youtube.com/watch?v=Zx09vcYq1oc&t=914s 

https://dontdiethere.tistory.com/43

https://docs.djangoproject.com/en/3.2/

 

 

πŸ•Ά 이런 것도 μžˆλ‹€! λ‚˜μ€‘μ— μ°Έκ³ (Django 둜 차트 그리기)

https://dowtech.tistory.com/3

λ°˜μ‘ν˜•