• 【Django】开发日报_3_Day:员工管理系统


    目录

    0、创建新的Django项目

    1、创建app 

    2、注册app

    3、设计表结构

    4、在MySQL中生成表

    5、静态文件管理

    6、部门管理

    6.1 部门列表


    0、创建新的Django项目

    step1:setting.py中的模板路径设为空,

    step2:templates目录删除。

    because:我们的模板通常放在app目录下,而不是根目录。,所以默认的模板路径不需要填写,django会默认根据app的注册顺序到app目录下面搜索模板存放路径。

    1、创建app 

    method 1:在终端输入:

    python manage.py startapp app名字

    method 2:使用pycharm附带工具

    直接输入:

    startapp app01

    2、注册app

    3、设计表结构

    数据库E-R图

    例表: 

     models.py 代码:

    1. from django.db import models
    2. # Create your models here.
    3. class Department(models.Model):
    4. """部门表"""
    5. #id = models.BigAutoField(verbose_name='id',primary_key=True)#手动设置自增主键
    6. title = models.CharField(verbose_name='部门标题',max_length=32)#verbose_name是给自己看的注释,不会影响数据库
    7. class UserInfo(models.Model):
    8. """员工表"""
    9. name = models.CharField(verbose_name='姓名',max_length=16)
    10. password = models.CharField(verbose_name='密码',max_length=64)
    11. age = models.IntegerField(verbose_name='年龄')
    12. account = models.DecimalField(verbose_name='账户余额',max_digits=10,decimal_places=2,default=0)#max_digits 数中允许的最大数目的数字 decimal_places 存储的小数位数的位数
    13. create_time = models.DateTimeField(verbose_name='入职时间')
    14. #1、无约束
    15. #depart_id = models.BigAutoField(verbose_name='部门id')
    16. #2、设置约束
    17. #将部门id设置为用户表的外键,也就是与部门表进行关联
    18. #-to-与哪张表关联
    19. #-to_field 与此表相关联的列
    20. #此处命名为depart,但实际数据库中会生成depart_id(django默认)
    21. #depart = models.ForeignKey(to="Department",to_field="id")#会报错,没有级联
    22. #3、设置级联删除,如果外键所在表的元素被删除,那么此表带有该元素的行也被删除。
    23. depart = models.ForeignKey(to="Department", to_field="id",on_delete=models.CASCADE)
    24. #4、如果表间有级联,不直接删除,将外键元素置空
    25. #depart = models.ForeignKey(to="Department", to_field="id", null=True,blank=True,on_delete=models.SET_NULL)
    26. #Django中进行约束
    27. gender_choices=(
    28. (1, "男"),
    29. (2, "女"),
    30. )
    31. gender = models.SmallIntegerField(verbose_name="性别",choices=gender_choices)

    4、在MySQL中生成表

    step0:MySQL创建数据库 

    step1:安装第三方库:

    pip install mysqlclient

    具体方法: 

     【Django】开发日报_2.1_Day:数据库操作_代码骑士的博客-CSDN博客

     下载whl文件拷贝到项目文件

     终端下载:

     pip install mysqlclient-1.4.6-cp37-cp37m-win_amd64.whl
    

    step 2:修改setting.py

    1. DATABASES = {
    2. 'default': {
    3. 'ENGINE': 'django.db.backends.mysql',
    4. 'NAME': 'djangotest3',
    5. 'USER': 'root',
    6. 'PASSWORD': '123456',
    7. 'HOST': '127.0.0.1',
    8. 'PORT': '3306',
    9. }
    10. }

    step3:django命令生成表

    method 1:terminal

    1. python manage.py makemigrations
    2. python manage.py migrate

    method 2 :tools->manage.py

    1. makemigrations;
    2. migrate;

    查看数据库

    use djangoproject3:

     5、静态文件管理

    step1:配置静态文件

    【Django】开发日报_1_Day:创建项目_代码骑士的博客-CSDN博客

    上述连接第9点讲了如何获取静态文件的素材,但是js的引用错了,必须按照下面评论的方法改过来,不然后续没法进行:

    此处直接拷贝再修改js的文件:

     step 2:创建模板目录

    6、部门管理

    (此处先用最原始的方法实现,后续再使用Django得高级方法:Form和ModelForm)

    6.1 部门列表

    step 1 :页面布局

    前端页面框架采用bootstrap

    Bootstrap v3 中文文档 · Bootstrap 是最受欢迎的 HTML、CSS 和 JavaScript 框架,用于开发响应式布局、移动设备优先的 WEB 项目。 | Bootstrap 中文网

    step 1 : urls.py

    1. from django.contrib import admin
    2. from django.urls import path
    3. from app01 import views
    4. urlpatterns = [
    5. #部门列表
    6. path('depart/list/', views.depart_list),
    7. ]

    step 2 : views.py

    1. from django.shortcuts import render
    2. # Create your views here.
    3. def depart_list(request):
    4. """部门列表"""
    5. return render(request,'depart_list.html')

    step 3 : depart_list.html

    1. {% load static %}
    2. html>
    3. <html lang="en">
    4. <head>
    5. <meta charset="UTF-8">
    6. <title>Titletitle>
    7. <link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.min.css' %}">
    8. <style>
    9. .navbar{
    10. border-radius: 0;
    11. }
    12. style>
    13. head>
    14. <body>
    15. <nav class="navbar navbar-default">
    16. <div class="container">
    17. <div class="navbar-header">
    18. <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
    19. <span class="sr-only">Toggle navigationspan>
    20. <span class="icon-bar">span>
    21. <span class="icon-bar">span>
    22. <span class="icon-bar">span>
    23. button>
    24. <a class="navbar-brand" href="#">联通用户管理系统a>
    25. div>
    26. <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
    27. <ul class="nav navbar-nav">
    28. <li><a href="/depart/list">部门管理a>li>
    29. <li><a href="/depart/list">Linka>li>
    30. ul>
    31. <ul class="nav navbar-nav navbar-right">
    32. <li><a href="#">登录a>li>
    33. <li class="dropdown">
    34. <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">代码骑士 <span class="caret">span>a>
    35. <ul class="dropdown-menu">
    36. <li><a href="#">个人资料a>li>
    37. <li><a href="#">我的信息a>li>
    38. <li role="separator" class="divider">li>
    39. <li><a href="#">注销a>li>
    40. ul>
    41. li>
    42. ul>
    43. div>
    44. div>
    45. nav>
    46. <div>
    47. <div class="container">
    48. <div style="margin-bottom: 10px">
    49. <a class="btn btn-success" href="#">
    50. <span class="glyphicon glyphicon-plus-sign" aria-hidden="true">span>
    51. 新建部门
    52. a>
    53. div>
    54. <div class="panel panel-default">
    55. <div class="panel-heading">
    56. <span class="glyphicon glyphicon-th-list" aria-hidden="true">span>
    57. 部门列表
    58. div>
    59. <table class="table table-bordered">
    60. <thead>
    61. <tr>
    62. <th>IDth>
    63. <th>名称th>
    64. <th>操作th>
    65. tr>
    66. thead>
    67. <tbody>
    68. <tr>
    69. <th>1th>
    70. <td>销售部td>
    71. <td>
    72. <a class="btn btn-primary btn-xs">编辑a>
    73. <a class="btn btn-danger btn-xs">删除a>
    74. td>
    75. tr>
    76. tbody>
    77. table>
    78. div>
    79. div>
    80. div>
    81. <script src="{% static 'js/jquery-3.6.0.min.js' %}">script>
    82. <script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}">script>
    83. body>
    84. html>

    html素材来自:

    图标:组件 · Bootstrap v3 中文文档 | Bootstrap 中文网

    导航: 组件 · Bootstrap v3 中文文档 | Bootstrap 中文网

     面板【表格】:组件 · Bootstrap v3 中文文档 | Bootstrap 中文网

  • 相关阅读:
    学习discovery studio对对接结果进行分析
    速盾:cdn与云服务区别有哪些方面?
    昇思25天学习打卡营第19天 | 基于MindSpore通过GPT实现情感分类
    奶牛摄影(春季每日一题 54)
    final、finally、finalize有什么不同呢?
    【技术】BootStrapTable 滚动条控制
    OpenCV利用Camshift实现目标追踪
    vue3+vite3+vant搭建移动端简易模版
    SpringBoot学习小结之数据库版本管理工具Flyway
    升级 TiDB Operator
  • 原文地址:https://blog.csdn.net/qq_51701007/article/details/126818152