hyeonga_code

파이선 웹구축_장고_14_테이블 이미지 업로드 본문

Python_Django

파이선 웹구축_장고_14_테이블 이미지 업로드

hyeonga 2023. 6. 6. 05:59
반응형

- 테이블 이미지값

1. 기본 설정값 <config> > 'settings.py'

'settings'

=====

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
TEMPLATES = [ 'DIRS': [BASE_DIR/'templates'] ]
 
INSTALLED_APPS = [ 'fname.apps.FnameConfig' ]
 
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR/"media"
#_ path와 dirs 설정 혼합
'''
static(A,B)
A로 시작하는 요청인지 B에서 파일을 찾겠다
 
B(폴더)에서 A파일을 찾을 것
A = /media/
B = BASE_DIR/media
어떤 사진이든 url 추가하지 않아도 불러올 수 있음
'''
cs

 

 

2. 경로 설정 <config> > 'urls.py'

'urls.py'

=====

1
2
3
4
5
6
7
8
9
10
from django.contrib import admin
from django.urls import path,include
from django.conf.urls.static import static
from . import settings
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('fname/' , include('fname.urls')),
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 
cs

 

 

 

3. index 함수 설정 <fname> > 'views.py'

'views.py'

=====

1
2
3
4
5
6
7
8
9
10
from django.shortcuts import render
from .models import Fclass
 
def index(request):
    f = Fclass.objects.all()
 
    context={
        'f' : f
    }
    return render(request,'fname/index.html', context)
cs

 

 

 

4. index 함수 경로 설정 <fname> > 'urls.py'

'urls.py'

=====

1
2
3
4
5
6
from django.urls import path
from . import views
 
urlpatterns=[
    path('index/', views.index, name='index' ),
]
cs

 

 

 

5. 테이블 값 설정 <fname> > 'models.py'

'models.py'

=====

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from django.db import models
 
class Fclass(models.Model):
    c_name = models.CharField(max_length=100)
    c_code = models.IntegerField()
    c_content = models.TextField()
    c_img = models.ImageField(upload_to='media/%y')
    #_ static 설정 후에 작업해야 함
    #_ MEDIA_ROOT와 연관되어 있음
    #_ 연도별로 폴더가 생성되어 저장됨
 
    def __str__(self):
        return self.c_name
 
    def getimg(self):
        if self.img:
            return self.img.url
        return 'media/noimage.png'
 
cs

 

>> 마이그레이션

#_ 오류 발생시 pip install Pillow 설치해야 함

 

 

 

6. index 페이지 작성 <fname> > 'index.html'

'index.html'

=====

1
2
3
4
5
6
7
<h1><b>Index Main Page</b></h1>
 
{% for i in f %}
    <img src ='{{i.getimg}}'><br>
    {{i.id}} : {{i.c_name}} <br><br><br>
{% endfor %}
 
cs

 

 

7. 관리자 생성 <fname> > 'admin.py'

'admin.py'

=====

1
2
3
4
5
from django.contrib import admin
from .models import Fclass
 
admin.site.register(Fclass)
 
cs

 

>> 실행

>> 레코드 추가

 

 

반응형