django 010 | Media
メディア実習
MEDIA_URL = os.path.join(BASE_DIR, 'media')
STATICFILES_DIRS=[os.path.join(BASE_DIR, 'blog', 'static')]
#현재 static 파일들이 어디에 있는지
STATIC_ROOT= os.path.join(BASE_DIR, 'static')
#static 파일을 어디에 모을건지
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
#media의 url을 표시해둔다
MEDIA_URL = '/media/'
# 이용자가 업로드한 파일을 모으는 곳
(1)下記の子をURLに追加する
from django.conf import settings
from django.conf.urls.static import static
(2)url patterns=[]静的を追加
urlpatterns = [
path('admin/', admin.site.urls),
path('',home, name="home"),
path('blog/', include('blog.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
=> + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)=>upload to:アップロードするファイルを指定します.set.
=>画像が存在しない場合はblank="True"を設定する必要があります.
: image=models.ImageField(upload_to="blog/", blank='True', null='True')
pip install pillow
モデルが変更されました.移動してください.
(1) python manage.py makemigrations
(2) python manage.py migrate
でもこれじゃ.
いきなりイメージコラムが増えて、既存のデータがびっくり~
no such column: blog_blog.image
したがって、現在作業中のファイル=>project=>apple=>migrationsを削除し、0001~0002で始まる友人を削除し、migration内にpychaeという友人を加え、initを削除し、すべて削除すればよい.
次に、プロジェクトのdbです.sqlite 3の削除
その後、makemigration、migrate、サーバの回転を行い、異常は発生しません.
その後sqliteを削除したためsuperuserは消え、superuserを再作成し、django/adminページにアクセスしてブログモデルを表示すると、写真ファイルをアップロードする効果がデータベースによく反映されていることがわかります
사진 : <input type="file" name="image">
追加 <form action ="{% url 'create' %}" method="post" enctype="multipart/form-data">
new_blog.image=request.FILES['image']
新blogはhtmlからimageという名前のファイルフォーマットを取得します.受け入れる <p><img src="{{ blog.image.url }}" alt=""></p>
=>イメージの追加だからPython if文法で異常を処理すればいい
{% if blog.image %}
<p><img src="{{ blog.image.url }}" alt=""></p>
{% endif %}
結果ウィンドウ:Reference
この問題について(django 010 | Media), 我々は、より多くの情報をここで見つけました https://velog.io/@myway00/django-010-Mediaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol