Django博客系统(用户中心修改)

2021/9/29 23:12:20

本文主要是介绍Django博客系统(用户中心修改),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 用户中心接口设计

1.请求方式

选项方案
请求方法POST
请求地址/center/

2.请求参数:表单

参数名类型是否必传说明
usernamestring用户名
avatarfile头像
descstring个人简介

3.响应结果:HTML

字段说明
修改失败响应错误提示
修改成功刷新展示

2. 用户中心修改接口实现

from django.contrib.auth.mixins import LoginRequiredMixin
class UserCenterView(LoginRequiredMixin,View):

    def post(self,request):
        # 接收数据
        user = request.user
        avatar = request.FILES.get('avatar')
        username = request.POST.get('username',user.username)
        user_desc = request.POST.get('desc',user.user_desc)

        # 修改数据库数据
        try:
            user.username=username
            user.user_desc=user_desc
            if avatar:
                user.avatar=avatar
            user.save()
        except Exception as e:
            logger.error(e)
            return HttpResponseBadRequest('更新失败,请稍后再试')

        # 返回响应,刷新页面
        response = redirect(reverse('users:center'))
        #更新cookie信息
        response.set_cookie('username',user.username,max_age=30*24*3600)
        return response

3. 用户中心头像的上传和展示

1.在settings.py文件中设置图片上传的路径并新建文件夹media

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

 2.重新上传之后发现无法访问

解决方案:

第一步:设置图片的统一url都以media开头。在settings.py文件中设置

# 图片的统一路由
MEDIA_URL = '/media/'

第二步:设置路由匹配规则。在工程的urls.py文件中设置

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    # include 参数1要设置为元组(urlconf_module, app_name)
    # namespace 设置命名空间
    path('', include(('users.urls', 'users'), namespace='users')),
    path('', include(('home.urls','home'),namespace='home')),
]
#以下代码为设置图片访问路由规则
from django.conf import settings
from django.conf.urls.static import static
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


这篇关于Django博客系统(用户中心修改)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程