Django的项目---员工管理

Django的项目---员工管理,第1张

Django的项目---员工管理

1 创建并注册app;

# (1)创建app,即在pycharm的终端执行下面的语句

python manage.py startapp app01

# (2)注册app,即在setting.py中的INSTALLED_APPS中注册:

'app01.apps.App01Config'

2 利用orm来设计表结构

# 在app中的models.py创建类,以下是相应的代码:

class Department(models.Model):
    """部门表,这里补充一下ID,事实上orm的 *** 作默认给出id是长整型和主键了"""
   # verbose_name是一个注解,增加可读性。方便维护人员阅读title是什么含义,可写可不写。
   # CharField(max_length=32)相当于varchar(32)
    id = models.BigAutoField(verbose_name=32, primary_key=True)
    title = models.CharField(verbose_name="标题", max_length=32)   
class UserInfo(models.Model):
    """员工表"""
   # DecimalField(max_digits=10, decimal_places=2, default=0)意思应该是说,最大的数字位数是10位(是包括小数位的),小数点的话是精确到后两位,也就是0.01。---最好验证下
   # DataTimeField()是时间类型了,对应mysql中的datetime
    name = models.CharField(verbose_name="员工姓名", max_length=16)
    password = models.CharField(verbose_name="密码", max_length=32)
    age = models.IntegerField(verbose_name="年龄")
    account = models.DecimalField(verbose_name="账户余额", max_digits=10, decimal_places=2, default=0)
    create_time = models.DateTimeField(verbose_name="入职时间")
   # 所属部门---这里是有约束的,也就是已存在部门,可以理解是部门表,
   # to是指向外键所在的表,to_field是要关联指向表中的哪一列,如下是id所属列
   # 之后,Django会自动给depart补上_id,也就是depart_id。因此我们可以不写_id。
    depart = models.ForeignKey(to="Department", to_field="id")
   # 后面的补充
    depart = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)
   # django中给的约束,就是给出一个性别元组的映射关系,接着直接给出choice属性等于该元组,那么就可以自动约束了。
    gender_chioce = (
        (1, "男"),
        (2, "女")
     )
    gender = models.SmallIntegerField(verbose_name="性别", choices=gender_chioce)

"""

        上述的depart语句是有问题的,这里存在问题就是当部门表中删掉了某个部门后,那么用户表中与被删部门相关的用户该怎么处理,是一并删除还是另外处置?因而下面给出解决方法:

        (1)级联删除法。就是把属于被删部门的用户直接删掉。那么应该这样修改,也就是补上on_delete的值。

          depart = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)

        (2)置空 *** 作。也就是把被删部门的用户的部门id置空,那么需要同时给出depart是允许为空的,on_delete就置为models.SET_NULL。

          depart = models.ForeignKey(to="Department", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)

 """

        

3  在cmd中创建数据库

# 建库命令,默认是utf-8的编码类型。COLLATE utf8_general_ci是数据库校对规则。ci是case insensitive的缩写,意思是大小写不敏感;相对的是cs,即case sensitive,大小写敏感;还有一种是utf8_bin,是将字符串中的每一个字符用二进制数据存储,区分大小写。

create database UserInfo default charset utf8 COLLATE utf8_general_ci;

4  在setting.py中修改数据库配置,链接mysql

DATAbaseS = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': base_DIR / 'db.sqlite3',
    # }
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'userinfo',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': 'localhost',
        'PORT': 3306,
    }
}

5  然后执行迁移数据库命令

python manage.py makemigrations

python manage.py migrate

6  另外配置一下静态文件,一般是开源的框架或者图片等,如css/js/plugins/img。就是放在app01下面。

7  从数据库中获取部门列表

# 进入app01中的view.py中,导入models.py的类

from app01 import models

# 定义 *** 作函数:

def depart_list(request):

        """部门表"""

        queryset = models.Department.objects.all()

         # 2 将返回的查询集合传到相应的html页面中。
        return render(request, 'depart_list.html', {"queryset": queryset})

        

8  前端页面渲染数据

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5700550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存