模块二 第一周 作业三 用户管理系统

1 问题描述

  • 制作一个用户信息管理模型 用户信息包括: ‐ 姓名 ‐ 密码 ‐ 年龄 ‐ 邮箱 ‐ 创建时间
  • 产品功能: 1. 全部用户信息的展示(查) 2. 添加新用户(增) 3. 修改用户信息(改) 4. 删除用户(删)

在这里插入图片描述

2 解题提示

  1. settings 中 数据库配置
  2. 模型类的创建
  3. 数据库迁移

3 评分标准

  1. 构造模型层并生成对应的表结构 10分
  2. 完成增删改查功能的开发 20分
  3. 代码注释,规范10分

4 要点解析

4.1 整体结构的理解

在这里插入图片描述

4.2 数据库迁移
  1. 使用命令行
  • 生成迁移文件
Python manage.py makemigrations
  • 同步数据库
python manage.py migrate
  1. 使用pycharm迁移

在这里插入图片描述

  • 同步数据库

在这里插入图片描述

4.3 settings中数据库配置与 pycharm连接数据库配置
  • settings中的是 django框架用来连接数据库的配置

在这里插入图片描述

  • pycharm中的database是pycharm连接的,就相当于图形化连接数据库

在这里插入图片描述

5 实现步骤

  • 使用pycharm右上角的 database连接数据库

在这里插入图片描述

  • settings中配置数据库

在这里插入图片描述

  • 定义字段

在这里插入图片描述

  • 创建模型类

在这里插入图片描述

  • 数据库迁移
Python manage.py makemigrations
python manage.py migrate

在这里插入图片描述

  • 主路由

在这里插入图片描述- ##### 子路由

在这里插入图片描述

  • 视图函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 前端页面
    • base页面
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>
            {% block title %}
            {% endblock %}
        </title>
        <link
                rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <script
            src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
        <script
            src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    </head>
    <body>
        <!-- 导航栏-->
        <nav class="navbar navbar-inverse" role="navigation">
            <div>
                <a class="navbar-brand" href="{% url "user:index" %}">用户信息管理系统</a>
            </div>
            <div>
                <ul class="nav navbar-nav">
                    <li><a href="{% url 'user:add' %}">新增用户</a></li>
                </ul>
    
            </div>
        </nav>
    {% block article %}
    {% endblock %}
    </body>
    </html>
    
    <!--
        要求
        1. 引用base.html
        2. 展示所有的数据for循环
        3. 操作修改和删除分别转到对应的地址去 url "namespace:urls" 【参数】
        4. css
    -->
    {% extends 'base.html' %}
    {% block title %}
    用户信息管理系统首页
    {% endblock %}
    {% block article %}
    <div class="container">
    <table class="table table-hover">
        <thead>
        <tr>
            <th>id</th>
            <th>姓名</th>
            <th>密码</th>
            <th>年龄</th>
            <th>邮箱</th>
            <th>创建时间</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
        {% for person in user  %}
            <tr>
                <td>{{ person.id }}</td>
                <td>{{ person.username }}</td>
                <td>{{ person.password }}</td>
                <td>{{ person.age }}</td>
                <td>{{ person.email }}</td>
                <td>{{ person.createDateTime|date:'Y-m-d H:i:s'}}</td>
                <!--模板过滤器 变量|过滤器关键字:参数-->
                <td><a href="{% url 'user:update' person.id %}">修改</a>
                    <a href="{% url 'user:delete' person.id %}">删除</a>
                </td>
            </tr>
        {% endfor %}
        </tbody>
    </table>
    </div>
    {% endblock %}
    
    <!--
        要求
        1. 引用base.html
        2. 分别在title,article里输入代码
        3. add需要使用form method='POST' action='add.html',其中POST需要加crsf_token(crsf跨站请求伪造)
        4. css把add页弄一下
    -->
    {% extends 'base.html' %}
    {% block title %}
    新增用户
    {% endblock %}
    {% block article %}
    <div>
        <form action="add.html"  method="post">
            {% csrf_token %}
            <div class="form-group" >
                <label for="username" class="col-sm-1 control-label">用户名</label>
                <div class="col-sm-2">
                    <input class="form-control"  type="text"  placeholder="请输入用户名" name="username">
                </div>
            </div>
            <br>
            <div class="form-group" >
                <br>
                <label for="password" class="col-sm-1 control-label">密码</label>
                <div class="col-sm-2">
                    <input class="form-control"  type="password" placeholder="请输入密码" name="password">
                </div>
            </div>
            <br>
            <div class="form-group" >
                <label for="age" class="col-sm-1 control-label">年龄</label>
                <div class="col-sm-2">
                    <input class="form-control"  type="text" placeholder="请输入年龄" name="age">
                </div>
            </div>
            <br>
            <div class="form-group" >
                <label for="email" class="col-sm-1 control-label">邮箱</label>
                <div class="col-sm-2">
                    <input class="form-control"  type="text" placeholder="请输入邮箱" name="email">
                </div>
            </div>
            <br>
            <div class="form-group" >
                <div class="col-sm-offset-1 col-sm-10">
                    <button type="submit" class="btn btn-default" >提交</button>
    
                </div>
            </div>
        </form>
    </div>
    {% endblock %}
    
    
    <!--
        要求
        1. 引用base.html
        2. 修改title和article两个内容
        3. 使用form,method使用POST
    
    -->
    {% extends 'base.html' %}
    {% block title %}
    修改用户
    {% endblock %}
    {% block article %}
    <div>
        <form action="{% url 'user:update' user.id %}" method="post">
        {% csrf_token %}
            <div class="form-group" >
                <label for="username" class="col-sm-1 control-label">用户名</label>
                <div class="col-sm-2">
                    <input class="form-control"  type="text"  placeholder="请输入用户名" name="username">
                </div>
            </div>
            <br>
            <div class="form-group" >
                <br>
                <label for="password" class="col-sm-1 control-label">密码</label>
                <div class="col-sm-2">
                    <input class="form-control"  type="password" placeholder="请输入密码" name="password">
                </div>
            </div>
            <br>
            <div class="form-group" >
                <label for="age" class="col-sm-1 control-label">年龄</label>
                <div class="col-sm-2">
                    <input class="form-control"  type="text" placeholder="请输入年龄" name="age">
                </div>
            </div>
            <br>
            <div class="form-group" >
                <label for="email" class="col-sm-1 control-label">邮箱</label>
                <div class="col-sm-2">
                    <input class="form-control"  type="text" placeholder="请输入邮箱" name="email">
                </div>
            </div>
            <br>
            <div class="form-group" >
                <div class="col-sm-offset-1 col-sm-10">
                    <button type="submit" class="btn btn-default" >修改</button>
    
                </div>
            </div>
        </form>
    </div>
    {% endblock %}
    
    <!--
        要求
        1. 引用base.html
        2. 输出title/article
        3. 输出增加/修改/删除的执行结果
    -->
    {% extends 'base.html' %}
    {% block title %}
    操作结果
    {% endblock %}
    {% block article %}
    {{ message }}
    {% endblock %}
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值