Django用户注册、登录、编辑信息、删除(简易版)

简介: Django用户注册、登录、编辑信息、删除(简易版)

views.py


# Create your views here.
from django.shortcuts import render, HttpResponse, redirect
from app01 import models
#     视图函数必须接受一个形参
def ab_render(request):
    # user_dict = {'username': 'jason', 'age':18}
    # 第一种传值方式  更加精确,节省资源
    # return render(request, '01my.html', {'data':user_dict, 'date':123})
    # 第二种方式  当要传输的数特别多的时候
    return render(request, '01my.html')
def login(request):
    """
    :param request:   请求相关的数据对象,里面有很多简易的方法
    :return:
    """
    if request.method == "POST"
        """
            get 只会获取最后一个元素
        """
    # 获取用户名和密码,然后利用orm操作数据,检验数据是否正确
        username = request.POST.get('username')
        password = request.POST.get('password')
        # 取数据库中查询数据
        from app01 import models
        user_obj = models.User.objects.filter(username=username).first()
        if user_obj:
            # print(type(password))
            # print(type(user_obj.password))
            if password == user_obj.password:
                return HttpResponse("登录成功")
            else:
                return HttpResponse("密码错误")
        else:
            return HttpResponse('用户不存在')
    return render(request, 'login.html')
'''           
    静态文件动态解析
     {% load static %}
    <link rel="stylesheet" href="{% static 'bootstrap-3.3.7/dist/css/bootstrap-theme.min.css'%}">
    <script src="{% static 'bootstrap-3.3.7/dist/js/bootstrap.min.js'%}"></script>
'''
def reg(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        # 直接获取用户数据存入数据库
        # from app01 import models
        # 第一种方法
        # res = models.User.objects.create(username=username, password=password)
        # # 返回值就是当前被创建对象本身
        # print(res, res.username, res.password)
        # 第二种方法
        user_obj = models.User(username=username, password=password)
        user_obj.save()
    return render(request, 'reg.html')
def userlist(request):
    # 查询出用户表中所有的数据
    # 方式一
    # data = models.User.objects.filter()
    # print(data)
    # 方式2
    user_queryset = models.User.objects.all()
    return render(request, 'userlist.html', locals())
def edit_user(request):
    # 获取url问好后面的参数
    edit_id = request.GET.get('user_id')
    # 查询当前用户想要编辑的数据对象
    # 查询当前用户想要编辑的数据对象
    edit_obj = models.User.objects.filter(id=edit_id).first()
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        # 去数据库中修改对应的数据内容
        # 修改数据方式一
        # models.User.objects.filter(id=edit_id).update(username=username, password=password)
        '''
            将filter查询出来的列表中所有的对象全部更新   批量更新操作
            只修改被修改的字段
        '''
        # 修改数据方式2
        edit_obj.username = username
        edit_obj.password = password
        edit_obj.save()
        '''
            当字段的别多的时候效率会非常低
            从头将所有的数据的所有字段全部更新一边,无论该字段是否被被修改
        '''
        # 跳转到数据展示的页面
        return redirect('/userlist/')
    return render(request, 'edit_user.html', locals())
def delete_user(request):
    delete_id = request.GET.get('user_id')
    models.User.objects.filter(id=delete_id).delete()
    # 批量删除
    # 跳转到展示页面
    '''
        真正的删除数据需要二次确认
        删除数据内部其实并不是真正的删除数据,我们会给数据添加一个标识字段用来表示,当前数据是否,被删除了,如果数据被删除了,仅仅是给这个字段修改了一个状态
        username      password  is_delete
        jasdon        123        0
        liu           123        1
    '''
    return redirect('/userlist/')


url.py


```python
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^ab_render/', views.ab_render),
    # 登录功能
    url(r'^login/', views.login),
    # 注册功能
    url(r'^register/', views.reg),
    # 展示
    url(r'^userlist/', views.userlist),
    # 编辑
    url(r'^edit_user', views.edit_user),
    # 删除用户
    url(r'^delete_user', views.delete_user)
]


models.py


from django.db import models
# Create your models here.
class User(models.Model):
    id = models.AutoField(primary_key=True, verbose_name='id')
    username = models.CharField(max_length=32,verbose_name='用户名')
    password = models.CharField(verbose_name='密码', max_length=64)
    def __str__(self):
        return '%s'%self.username
相关文章
|
Shell 数据库 网络架构
Django+DRF 实战:从异常捕获到自定义错误信息(下)
本文详解了 Django REST Framework 中 ValidationError 的验证流程与优先级,涵盖字段内置验证、自定义验证方法、对象级验证及数据库约束,并通过实战演示如何自定义异常提示信息。
470 1
Django+DRF 实战:从异常捕获到自定义错误信息(下)
|
数据安全/隐私保护 网络架构 UED
Django+DRF 实战:从异常捕获到自定义错误信息
本文介绍了DRF(Django REST framework)中的异常处理机制,重点讲解了内置异常类ValidationError的使用场景与示例。同时通过用户注册功能的实战演示,展示了如何在序列化器中自定义参数校验规则,并在视图中捕获并返回结构化的错误信息,提升接口的健壮性与用户体验。
343 0
|
监控 数据可视化 前端开发
基于python django的电商数据分析系统,包括大屏和登录
本文介绍了一个基于Python Django框架开发的电商数据分析系统,该系统具备大屏展示功能和用户登录机制,旨在帮助电商企业实时监控和分析销售数据,支持多维度数据分析和趋势预测。
681 0
基于python django的电商数据分析系统,包括大屏和登录
|
数据采集 存储 数据可视化
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
本文介绍了一个基于Python Django框架的智联招聘数据采集与分析系统,该系统具备登录注册功能,允许用户自主选择采集内容,并通过对数据的分析和可视化展示,帮助企业和招聘者优化招聘策略。
647 1
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
|
JSON 中间件 数据格式
django获取request请求头信息,获取Content-Type
django获取request请求头信息,获取Content-Type
436 4
|
数据库 数据安全/隐私保护 数据库管理
#099473#基于django的毕业生信息管理招聘系统
#099473#基于django的毕业生信息管理招聘系统
298 4
|
存储 数据库 数据安全/隐私保护
Python Django的学生选课管理系统,实现多用户登录注册,可选课可评课
本文介绍了一个基于Python Django框架开发的多功能学生选课管理系统,该系统具备教师和学生两个角色的权限管理,支持课程管理、成绩录入、选课申请、成绩查询和个人信息管理等功能,并注重数据安全与隐私保护。
727 0
Python Django的学生选课管理系统,实现多用户登录注册,可选课可评课
|
数据采集 数据可视化 前端开发
基于python django的当当网书籍数据采集与可视化分析,实现数据采集与可视化分析,有登录注册和后台管理
本文介绍了一个基于Python和Django框架的当当网书籍数据采集与可视化分析项目,该项目实现了数据采集、用户登录注册、后台管理,并利用数据清洗、分析和可视化技术在前端展示分析结果。
619 0
基于python django的当当网书籍数据采集与可视化分析,实现数据采集与可视化分析,有登录注册和后台管理
|
数据库 数据安全/隐私保护 Python
django 快速实现完整登录系统
django 快速实现完整登录系统
|
XML JSON 前端开发
小白学Django第八天| 登录案例实战
小白学Django第八天| 登录案例实战
563 1
小白学Django第八天| 登录案例实战