Django实现头像上传

模型
class UserImages(models.Model):
    image = models.ImageField(upload_to='images')

    class Meta:
        db_table = 'tb_images'

form表单
<form action="" method="post" enctype='multipart/form-data'>
    {% csrf_token %}
    {% for item in images %}
        <img src="/media/{{ item.image }}" width="50px">
    {% endfor %}
    <p>选择图片:<input type="file" name="img"></p>
    <p><input type="submit" value="提交"></p>
</form>

####settings配置自定义的media路径

# urls.py
from django.contrib import admin
from django.urls import path, include
from django.contrib.staticfiles.urls import static

from kickstarter.settings import MEDIA_ROOT, MEDIA_URL

urlpatterns = [
    path('admin/', admin.site.urls),
    path('user/', include(('user.urls', 'user'), namespace='user')),
]

urlpatterns += static(MEDIA_URL, document_root=MEDIA_ROOT)


# settings.py

# 在静态文件夹下添加媒体访问的地址
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

# 媒体文件夹
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
view
def icon(request):
    if request.method == 'GET':
        images = UserImages.objects.all()
        return render(request, 'picture.html', {'images': images})
    if request.method == 'POST':
        icon = request.FILES.get('img')
        # 将图片保存在media文件中,且存储的是相对路径
        UserImages.objects.create(image=icon)
        return HttpResponse('上传成功')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值