Django3实现用户登录注册(附带头像)

本文档详细介绍了使用Django3实现用户注册并上传头像的全过程,涵盖了model.py、forms.py、views.py、register.html、urls.py等关键步骤。在forms.py中进行了自定义验证,views.py处理文件上传,html文件实现了表单渲染。同时,文章解答了如何手动上传文件的问题,强调了在处理文件上传时需注意的细节。

一、流程

model.py ~~> forms.py ~~> views.py ~~> html文件 ~~> urls.py

  1. models.py:编写用户的模型。
  2. forms.py:继承forms.ModelForm类,根据用户模型自动生成Filed。
  3. views.py:视图类,接收forms.py的数据进行校验和存储到数据库中。
  4. html文件:自己编写form表单进行渲染,不使用系统的form.as_p对表单进行渲染。
  5. urls.py:映射文件。

二、model.py

from django.db import models
from django.core import validators

class User(model.Model):
	css_image = models.ImageField(upload_to='user/', max_length=200, default='user/default.png', verbose_name='头像')
    css_name = models.CharField(max_length=20, verbose_name='姓名')
    css_password = models.CharField(max_length=20, verbose_name='密码')
    css_phone = models.CharField(validators=[validators.RegexValidator(r"1[345678]\d{9}", message='请输入正确格式的手机号码!')], max_length=20, verbose_name='联系电话', unique=True)

注意:

  1. ImageField需要指定MEDIA_ROOTMEDIA_URL,参考django 如何在HMTL中使用媒体media_url
  2. validators自定义验证

三、forms.py

from django import forms
from .models import User

class RegisterForm(forms.ModelForm):
    password_repeat = forms.CharField(max_length=20, min_length=5, label='重复密码', widget=forms.PasswordInput)

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值