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
相关文章
|
27天前
|
JSON 中间件 数据格式
django获取request请求头信息,获取Content-Type
django获取request请求头信息,获取Content-Type
29 4
|
27天前
|
数据库 数据安全/隐私保护 数据库管理
#099473#基于django的毕业生信息管理招聘系统
#099473#基于django的毕业生信息管理招聘系统
34 4
|
3月前
|
数据采集 存储 数据可视化
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
本文介绍了一个基于Python Django框架的智联招聘数据采集与分析系统,该系统具备登录注册功能,允许用户自主选择采集内容,并通过对数据的分析和可视化展示,帮助企业和招聘者优化招聘策略。
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
|
3月前
|
数据采集 数据可视化 数据挖掘
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
本文介绍了一个基于Python和Django框架,使用Scrapy进行去哪儿网数据采集与分析的项目,包括实现登录注册功能、MD5加密以及通过可视化大屏展示分析结果的综合系统。
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
|
3月前
|
存储 数据库 数据安全/隐私保护
Python Django的学生选课管理系统,实现多用户登录注册,可选课可评课
本文介绍了一个基于Python Django框架开发的多功能学生选课管理系统,该系统具备教师和学生两个角色的权限管理,支持课程管理、成绩录入、选课申请、成绩查询和个人信息管理等功能,并注重数据安全与隐私保护。
Python Django的学生选课管理系统,实现多用户登录注册,可选课可评课
|
3月前
|
监控 数据可视化 前端开发
基于python django的电商数据分析系统,包括大屏和登录
本文介绍了一个基于Python Django框架开发的电商数据分析系统,该系统具备大屏展示功能和用户登录机制,旨在帮助电商企业实时监控和分析销售数据,支持多维度数据分析和趋势预测。
基于python django的电商数据分析系统,包括大屏和登录
|
3月前
|
数据采集 数据可视化 前端开发
基于python django的当当网书籍数据采集与可视化分析,实现数据采集与可视化分析,有登录注册和后台管理
本文介绍了一个基于Python和Django框架的当当网书籍数据采集与可视化分析项目,该项目实现了数据采集、用户登录注册、后台管理,并利用数据清洗、分析和可视化技术在前端展示分析结果。
基于python django的当当网书籍数据采集与可视化分析,实现数据采集与可视化分析,有登录注册和后台管理
|
3月前
|
数据库 数据安全/隐私保护 Python
django 快速实现完整登录系统
django 快速实现完整登录系统
|
6天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
79 44
|
7天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
25 2