赞
踩
开发手机号管理系统,实践各个功能
文件一:url.py 路由配置
1、定义id后,views对应方法,需要传参
urlpatterns = [
# path('admin/', admin.site.urls),
path('patty/list/',views.patty_list),
path('patty/add/',views.patty_add),
path('patty/<int:uid>/delate/',views.patty_delate),
path('patty/<int:uid>/edit/',views.patty_edit),
]
文件二:model.py 常见创建字段方法:
class Pattynum(models.Model): mobile = models.CharField(verbose_name='手机', max_length=11) piac = models.IntegerField(verbose_name='价格',default=0) level_choices = ( (1,'一级'), (2,'二级'), (3,'三级'), ) level = models.SmallIntegerField(verbose_name='级别',choices=level_choices,default=1) ctime = models.DateField(verbose_name='创建时间',default='2022-10-21') status_choices = ( (1,'已售'), (2,'未售'), ) status = models.SmallIntegerField(verbose_name='上架',choices=status_choices,default=2) def __str__(self): return self.mobile
文件三:views.py 调用方法:
from django import forms # 导入正则表达式 from django.core.validators import RegexValidator # 钩子方法 返回错误信息 from django.core.exceptions import ValidationError class Pattynu(forms.ModelForm): # 校验一 【正则表达式】校验手机号是否正确 mobile = forms.CharField( label='手机号', validators=[RegexValidator(r'^1[3,5,7,8]\d{9}$','手机格式错误!')] ) class Meta: model = Pattynum fields = ['mobile','piac','level','ctime','status'] # 列表字段添加样式属性方法 def __init__(self,*args,**kwargs): super().__init__(*args,**kwargs) for name,filed in self.fields.items(): filed.widget.attrs={'class':'form-control','placeholder':'请输入'+filed.label} # 校验二 【钩子方法】校验手机号是否正确 def clean_mobile(self): text_mobile = self.cleaned_data['mobile'] if len(text_mobile) != 11: raise ValidationError('格式错误') return text_mobile # 增加 def patty_add(request): if request.method == 'GET': forms = Pattynu() return render(request,'patty_add.html',locals()) forms = Pattynu(data=request.POST) if forms.is_valid(): forms.save() return redirect('/patty/list/') return render(request,'patty_add.html',locals()) # 编辑 def patty_edit(request,uid): staff = Pattynu.objects.filter(id=uid).first() if request.method == 'GET': form = Pattynu(instance=staff) # 先实例化对象,然后用instance=实例化对象,就可以将默认值携带编辑页面 return render(request,'patty_edit.html',locals()) form = Pattynu(data=request.POST, instance=staff) if form.is_valid(): # 默认保存的是用户输入的所有数据,如果想要再用户输入以外增加一点值 # form. instance.字段名 = 值 form.save() return redirect('/patty/list/') return render(request, 'patty_edit.html', locals()) # 删除 def patty_delate(request,uid): Pattynum.objects.filter(id=uid).delete() return redirect('/patty/list/')
文件四:patty_add.html / patty_edit.html 公用模板调用:
<form method="post" style="margin-top: 20px;" novalidate>
{% csrf_token %}
<fieldset>
{% for obj in forms %}
<div class="form-group">
<label>{{ obj.label }}</label>
{{ obj }}
<span style="color: red;">{{ obj.errors }}</span>
</div>
{% endfor %}
<button type="submit" class="btn btn-primary">提 交</button>
</fieldset>
</form>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。