首页 > 其他分享 >【django学习-19】基本流程与用户管理界面(原始方式)

【django学习-19】基本流程与用户管理界面(原始方式)

时间:2024-05-13 21:56:27浏览次数:12  
标签:界面 name 19 request django models user depart verbose

  • 1.安装及创建项目

    • 1.1:安装django,pip install django
    • 1.2:创建项目:django-admin startproject 项目名称
    • 1.3:创建app:python manage.py startapp app名称
    • 1.4:使用pychram创建项目:
      • 1.4.1:注意点,pycharm在标准的基础上默认给咱们加了点东西
      • 1.4.2:创建了一个templates目录【删除】
      • 1.4.3:settings.py中【删除】,DIRS列表内容
    • 1.5:注册app
  • 2.数据库操作

    • 2.1:安装第三方模块:pip install mysqlclient
    • 2.2:setting中配置数据库信息
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '',  # 数据库名字
        'USER': '',
        'PASSWORD': '',
        'HOST': '47.98.15.255',  # 那台机器安装了MySQL
        'PORT': 3306,
    }
}
  • 2.3:ORM可以帮助我们做两件事:

    • 创建、修改、删除数据库中的表(不用你写SQL语句)。 【无法创建数据库】
    • 操作表中的数据(不用写SQL语句)
  • 2.4:创建数据库语句:create database gx_day02 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  • 3.代码示例

    • 3.1:user_add.html
{% extends 'layout.html' %}
{% load static %}

{% block css %}
    <link rel="stylesheet" href="{% static 'plugins/bootstrap-datepicker/css/bootstrap-datepicker.min.css' %}">
{% endblock %}

{% block content %}
    <div class="container">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title"> 新建用户 </h3>
            </div>
            <div class="panel-body">
                <form method="post">
                    {% csrf_token %}

                    <div class="form-group">
                        <label>姓名</label>
                        <input type="text" class="form-control" placeholder="姓名" name="user" />
                    </div>

                    <div class="form-group">
                        <label>密码</label>
                        <input type="text" class="form-control" placeholder="密码" name="pwd"/>
                    </div>

                    <div class="form-group">
                        <label>年龄</label>
                        <input type="text" class="form-control" placeholder="年龄" name="age"/>
                    </div>

                    <div class="form-group">
                        <label>余额</label>
                        <input type="text" class="form-control" placeholder="余额" name="ac"/>
                    </div>


                    <div class="form-group">
                        <label>入职时间</label>
                        <input type="text" id="dt" autocomplete="off" class="form-control" placeholder="入职时间" name="ctime"/>
                    </div>

                    <div class="form-group">
                        <label>性别</label>
                        <select class="form-control" name="gd">
                            {% for item in gender_choices %}
                                <option value="{{ item.0 }}">{{ item.1 }}</option>
                            {% endfor %}
                        </select>
                    </div>

                    <div class="form-group">
                        <label>部门</label>
                        <select class="form-control" name="dp">
                            {% for item in depart_list %}
                                <option value="{{ item.id }}">{{ item.title }}</option>
                            {% endfor %}
                        </select>
                    </div>

                    <button type="submit" class="btn btn-primary">提 交</button>
                </form>
            </div>
        </div>
    </div>
{% endblock %}
  • 3.2:urls.py
path('user/list/', user.user_list),
path('user/add/', user.user_add),
  • 3.3:views.py
from app01 import models
from app01.utils.pagination import Pagination
from app01.utils.form import UserModelForm, PrettyModelForm, PrettyEditModelForm

def user_list(request):
    """ 用户管理 """

    queryset = models.UserInfo.objects.all()

    # context = {
    #     "queryset": queryset,
    # }
    page_object = Pagination(request, queryset, page_size=10)
    context = {
        "queryset": page_object.page_queryset,
        "page_string": page_object.html(),
    }
    return render(request, 'user_list.html', context)

def user_add(request):
    """ 添加用户(原始方式) """
    if request.method == "GET":
        context = {
            'gender_choices': models.UserInfo.gender_choices,
            "depart_list": models.Department.objects.all()
        }
        return render(request, 'user_add.html', context)

    # 获取用户提交的数据
    user = request.POST.get('user')
    pwd = request.POST.get('pwd')
    age = request.POST.get('age')
    account = request.POST.get('ac')
    ctime = request.POST.get('ctime')
    gender = request.POST.get('gd')
    depart_id = request.POST.get('dp')

    # 添加到数据库中
    models.UserInfo.objects.create(name=user, password=pwd, age=age,
                                   account=account, create_time=ctime,
                                   gender=gender, depart_id=depart_id)

    # 返回到用户列表页面
    return redirect("/user/list/")
  • 3.4:models.py
from django.db import models

class Department(models.Model):
    """ 部门表 """
    title = models.CharField(verbose_name='标题', max_length=32)

    def __str__(self):
        return self.title


class UserInfo(models.Model):
    """ 员工表 """
    name = models.CharField(verbose_name="姓名", max_length=16)
    password = models.CharField(verbose_name="密码", max_length=64)
    age = models.IntegerField(verbose_name="年龄")
    account = models.DecimalField(verbose_name="账户余额", max_digits=10, decimal_places=2, default=0)
    # create_time = models.DateTimeField(verbose_name="入职时间")
    create_time = models.DateField(verbose_name="入职时间")

    # 无约束
    # depart_id = models.BigIntegerField(verbose_name="部门ID")
    # 1.有约束
    #   - to,与那张表关联
    #   - to_field,表中的那一列关联
    # 2.django自动
    #   - 写的depart
    #   - 生成数据列 depart_id
    # 3.部门表被删除
    # ### 3.1 级联删除
    depart = models.ForeignKey(verbose_name="部门",to="Department", to_field="id", on_delete=models.CASCADE)
    # ### 3.2 置空
    # depart = models.ForeignKey(to="Department", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)

    # 在django中做的约束
    gender_choices = (
        (1, "男"),
        (2, "女"),
    )
    gender = models.SmallIntegerField(verbose_name="性别", choices=gender_choices)

标签:界面,name,19,request,django,models,user,depart,verbose
From: https://www.cnblogs.com/xwltest/p/18190108

相关文章

  • Django 安全性与防御性编程:如何保护 Django Web 应用
    title:Django安全性与防御性编程:如何保护DjangoWeb应用date:2024/5/1320:26:58updated:2024/5/1320:26:58categories:后端开发tags:CSRFXSSSQLUploadHTTPOnlyPasswordSession跨站请求伪造(CSRF)跨站请求伪造(CSRF)是一种常见的网络攻击,它利用用户的身份......
  • [19] C++网络通信开发
    Day1 通过引入路径找到类型根据角色进入方向开门(向量运算、几何概念、点乘)向量的减法:OtherActor->GetActorLocation()-GetActorLocation()这一部分是计算两个位置向量之间的差向量,即门的位置向量减去角色的位置向量,得到了一个从门指向角色的向量。向量的归一化:V1......
  • winform控件 datagridview分页功能 界面实现需要有上一页下一页等操作控件 dataGridV
    以下提供一个示例来说明如何在WinForms中实现分页功能,并在分页中实现数据修改并保存的操作。首先,我们需要一个包含数据源的DataGridView控件,并添加上一页、下一页等操作控件来实现分页功能。接下来,我们需要实现数据的加载、分页、修改和保存功能。这里我将提供一个简单的例......
  • Python-Tkinter图形化界面设计(详细教程 )
    Python-Tkinter图形化界面设计(详细教程)声明:本篇文章为转载自https://www.jianshu.com/p/91844c5bca78,在原作者的基础上添加目录导航,旨在帮助大家以更高效率进行学习和开发。Python-Tkinter图形化界面设计(详细教程)#一.图形化界面设计的基本理解#当前流行的计算机桌面应用程序......
  • Python3+Django2配置后台管理
    前言使用Django我们只需要做一些配置,就可以实现简单的后台管理系统,下面我们以新闻系统为例子来搭建后台。创建项目切换到工作空间,执行以下命令:django-admin.pystartprojectitstyle#进入itstyle文件夹cditstyle#创建newsAppmanage.pystartappnews项目结构:......
  • HydroOJ 从入门到入土(19)导入题解和标程、题目数据统计(>=4.12.0)
    题解和std可以导入了,导出还会远吗?目录一、导入题解和标程1.目录结构2.测试结果3.第二次测试题目结构如下:测试结果:4.总结:关于题解:关于标程(std):去除.DS_Store的解决方法二、题目数据统计1.范围2.筛选选项3.无关紧要的小bug一、导入题解和标程新版本更新了这个功能,方......
  • 【M5Stack物联网开发】第四章 用户界面
    1交互设计交互设计(InteractionDesign,简称IxD)是一种专注于创造有意义的关系,介于人与人、人与产品或服务之间的设计领域。这种设计形式主要关注于如何使产品、系统或服务与用户之间的交互更加有效、效率高、直观和愉悦。交互设计的核心目标是提高用户体验和满意度,通过改善产品的......
  • 洛谷题单指南-动态规划3-P1880 [NOI1995] 石子合并
    原题链接:https://www.luogu.com.cn/problem/P1880题意解读:计算n堆石子合并的最小、最大得分,只不过这n堆石子是环形的,也就是首、尾也相邻,是区间DP的升级版-环形DP问题。解题思路:如果是常规区间DP的方法:对于n堆石子,考察区间的长度范围是1~n先枚举左端点i,范围是1~n再计算右......
  • 探索Django:从项目创建到图片上传的全方位指南
    Django是什么Django是一个流行的PythonWeb开发框架,它提供了一系列工具和库,用于帮助开发人员构建高效、可扩展的Web应用程序。Django的目标是让开发者能够以快速和简单的方式构建复杂的Web应用,通过提供许多预构建的组件和功能,如ORM(对象关系映射)、表单处理、认证系统、管......
  • sqlserver2019安装
    说明:新版sqlserver安装分两部分:第一部分安装服务 第二部分安装管理工具 第一步:下载安装包 ed2k://|file|cn_office_professional_plus_2019_x86_x64_dvd_5e5be643.iso|3775004672|1E4FFA5240F21F60DC027F73F1C62FF4|/第二步:安装服务这里注意:    推荐第一种安......