from django.shortcuts import render,HttpResponse,redirect
# Create your views here.
def index(request):
return HttpResponse("主页!")
def user_index(request):
name ="战胜"
roles = ["管理员","用户","游客"]
users = {"小明":10,"小红":20,"小王":30}
return render(request,"user/index.html",{"name":name,"roles":roles,"users":users})
def user_login(request):
if request.method=="GET":
return render(request,"user/login.html")
else:
name = request.POST.get("name")
password = request.POST.get("password")
print(name,password)
return HttpResponse("登录成功")
from user.models import UserInfo
def orm_test(request):
# # 1. 添加数据
# UserInfo.objects.create(name="战胜1",password="123456",age=18)
# UserInfo.objects.create(name="战胜2",password="123456",age=18)
# UserInfo.objects.create(name="战胜3",password="123456",age=18)
# 2. 删除数据
# UserInfo.objects.filter(id=1).delete()
# UserInfo.objects.all().delete()
# 3. 查询数据
# userList = UserInfo.objects.all() #所有数据
user = UserInfo.objects.filter(id=2) # 获取一条数据
print(user)
# 4.更新
# UserInfo.objects.filter(name="战胜2").update(age=23)
return HttpResponse("ORM操作成功")
from user.models import UserInfo,UserRole
# 【权限列表】
def role_list(request):
role_list = UserRole.objects.all()
return render(request,"user/role_list.html",{"role_list":role_list})
# 【添加权限】
def role_add(request):
if request.method=="GET":
return render(request,"user/role_add.html")
else:
typeName = request.POST.get("typeName")
print(typeName)
UserRole.objects.create(type=typeName)
return redirect("/role/list")
def role_edit(request,rid):
if request.method=="GET":
print(rid)
role = UserRole.objects.filter(id=rid).first()
return render(request,"user/role_edit.html",{"role":role})
else:
print(rid)
typeName = request.POST.get("typeName")
print(typeName)
UserRole.objects.filter(id=rid).update(type=typeName)
return redirect("/role/list")
def role_delete(request):
rid = request.GET.get("rid")
print(rid)
UserRole.objects.filter(id=rid).delete()
return redirect("/role/list")
########################### ModelForm ###################
# 【用户列表】
def user_list(request):
# 搜索
q_name = request.GET.get("q","")
data_dict = {}
if q_name:
data_dict["name__contains"] = q_name
user_list = UserInfo.objects.filter(**data_dict)
return render(request,"user/user_list.html",{"user_list":user_list,"q_name":q_name})
from django import forms
from django.core.exceptions import ValidationError
from django.core.validators import RegexValidator
# 【定义一个添加表单内容】
class UserAddModelForm(forms.ModelForm):
#验证方法一:添加校验条件
# name = forms.CharField(min_length=3,label="用户名")
name = forms.CharField(label="用户名",validators=[RegexValidator(r'^1[3-9]\d{9}$','手机号格式错误')])
confirm_password = forms.CharField(label="确认密码",widget=forms.PasswordInput(render_value=True))
# 验证方法二:账号的验证
def clean_name(self):
text_name = self.cleaned_data["name"]
#判断添加账号是否重复
exists = UserInfo.objects.filter(name=text_name).exists()
if exists:
raise ValidationError("账号已经存在")
if len(text_name) < 3:
raise ValidationError("长度不能小于3!")
return text_name
# 密码的验证
def clean_confirm_password(self): # 这是是验证确认密码而不是密码,因为确认密码在后面才出现
print(self.cleaned_data)
pwd = self.cleaned_data.get("password")
confirm_pwd = self.cleaned_data.get("confirm_password")
if pwd != confirm_pwd:
raise ValidationError("两次密码不一致!")
return pwd
class Meta:
model = UserInfo
# 将要生成的表单项
fields = ["name","password","confirm_password","age","account","create_date","gender","role"]
widgets = {
"password": forms.PasswordInput(render_value=True),
}
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
# 循环找到所有的插件添加样式
for name,filed in self.fields.items():
if filed.widget.attrs:
filed.widget.attrs["class"] = "form-control"
filed.widget.attrs["placeholder"] = filed.label
else:
filed.widget.attrs = {"class":"form-control","placeholder":filed.label}
# 【定义一个编辑表单内容】
class UserEditModelForm(forms.ModelForm):
#验证方法一:添加校验条件
# name = forms.CharField(min_length=3,label="用户名")
name = forms.CharField(label="用户名",validators=[RegexValidator(r'^1[3-9]\d{9}$','手机号格式错误')])
# 验证方法二:
def clean_name(self):
row_id = self.instance.pk # 当前操作行的id
print(row_id)
text_name = self.cleaned_data["name"]
exists = UserInfo.objects.exclude(id=row_id).filter(name=text_name).exists()
if exists:
raise ValidationError("账号已经存在")
if len(text_name) < 3:
raise ValidationError("长度不能小于3!")
return text_name
class Meta:
model = UserInfo
# 将要生成的表单项
fields = ["name","password","age","account","create_date","gender","role"]
# widgets = {
# "name": forms.TextInput(attrs={"class":"form-control"}),
# "password": forms.PasswordInput(attrs={"class":"form-control"}),
# }
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
# 循环找到所有的插件添加样式
for name,filed in self.fields.items():
if filed.widget.attrs:
filed.widget.attrs["class"] = "form-control"
filed.widget.attrs["placeholder"] = filed.label
else:
filed.widget.attrs = {"class":"form-control","placeholder":filed.label}
def user_add(request):
if request.method == "GET": # GET获取add页面
form = UserAddModelForm()
return render(request,"user/user_add.html",{"form":form})
else: # POST提交add数据
form = UserAddModelForm(data=request.POST)
if form.is_valid():
print(form.cleaned_data)
# 数据合法则保存到数据库
form.save()
return redirect("/user/list/")
else:
print(form.errors)
return render(request, "user/user_add.html", {"form": form})
def user_edit(request,uid):
if request.method=="GET":
usr_obj = UserInfo.objects.filter(id=uid).first() #数据库中获取数据
form = UserEditModelForm(instance=usr_obj)
return render(request, "user/user_edit.html", {"form": form})
else:
usr_obj = UserInfo.objects.filter(id=uid).first() # 数据库中获取数据
form = UserEditModelForm(data=request.POST,instance=usr_obj)
if form.is_valid():
form.save()
return redirect("/user/list/")
else:
return render(request, "user/user_edit.html", {"form": form})
def user_delete(request):
uid = request.GET.get("uid")
UserInfo.objects.filter(id=uid).delete()
return redirect("/user/list")
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
一、创建一个Django项目 二、案列测试一 三、模板templates 和 静态文件static使用 1、templates模板使用 2、静态文件static使用 3、静态文件使用测试 四、模板语法 1、数据展示 2、条件语句 五、案例测试 : 登录 六、ORM - 数据库 1、创建数据库 2、Django连接mysql配置 3、类创建数据表 4、数据库迁移 5、增删改查 七、用户管理案例 1、创建Django项目 2、创建数据库和表 3、页面模板common.html 4、列表展示 5、添加 6、编辑 7、删除 八、ModelForm表单的使用 0、准备 1、用户列表【包括搜索】 2、添加用户 3、编辑用户 4、删除用户 其他 1、分页 2、学习视频
资源详情
资源评论
资源推荐
收起资源包目录
baseDjango.zip (61个子文件)
baseDjango
baseDjango
__pycache__
__init__.cpython-37.pyc 146B
settings.cpython-37.pyc 2KB
urls.cpython-37.pyc 1KB
wsgi.cpython-37.pyc 555B
wsgi.py 413B
__init__.py 0B
settings.py 4KB
asgi.py 413B
urls.py 1KB
templates
admin
user
common.html 2KB
role_edit.html 544B
role_add.html 596B
login.html 428B
role_list.html 1KB
index.html 3KB
user_add.html 599B
user_edit.html 599B
user_list.html 2KB
user
models.py 1KB
apps.py 146B
__pycache__
admin.cpython-37.pyc 181B
__init__.cpython-37.pyc 140B
views.cpython-37.pyc 6KB
models.cpython-37.pyc 1KB
apps.cpython-37.pyc 409B
__init__.py 0B
migrations
__pycache__
0001_initial.cpython-37.pyc 1KB
__init__.cpython-37.pyc 151B
0002_auto_20221005_1840.cpython-37.pyc 711B
__init__.py 0B
0001_initial.py 2KB
0002_auto_20221005_1840.py 623B
views.py 8KB
admin.py 66B
tests.py 63B
static
css
img
logo.png 8KB
plugins
bootstrap-3.4.1
css
bootstrap-theme.css 25KB
bootstrap.css.map 382KB
bootstrap.min.css 119KB
bootstrap-theme.min.css.map 74KB
bootstrap.css 143KB
bootstrap-theme.min.css 23KB
bootstrap-theme.css.map 47KB
bootstrap.min.css.map 528KB
fonts
glyphicons-halflings-regular.woff 23KB
glyphicons-halflings-regular.woff2 18KB
glyphicons-halflings-regular.ttf 44KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.svg 106KB
js
npm.js 484B
bootstrap.min.js 39KB
bootstrap.js 74KB
js
jquery-3.6.1.min.js 88KB
db.sqlite3 0B
.idea
misc.xml 315B
deployment.xml 543B
modules.xml 272B
workspace.xml 26KB
inspectionProfiles
Project_Default.xml 270B
baseDjango.iml 1KB
manage.py 688B
共 61 条
- 1
战胜.
- 粉丝: 2w+
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0