版权声明:著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 https://blog.csdn.net/ChaoFeiLi/article/details/88750701
在上一篇博客中已经实现了,链接数据库和创建APP,这一次我们做一个网页。
主要内容包括:mysql的主键,外键,class Meta的使用,基本操作等。
创建了一个dataImport的工程,注册了一个名为blog的APP。
一、在./blog/models.py中,定义了两个模型,一个是computer,一个是房间号,computer的主键是identifier,外键是Room,(number = models.ForeignKey(Room, on_delete=models.CASCADE)),这是这是外键的代码。
# encoding: utf-8
from django.db import models
from django import forms
# Create your models here.
class Room(models.Model):
number = models.CharField(max_length=2, primary_key=True)
def __str__(self):
return self.number
class Meta:
verbose_name_plural = '房间号'
verbose_name = '房间号'
# class
class Computer(models.Model):
number = models.ForeignKey(Room, on_delete=models.CASCADE)
identifier = models.CharField(max_length=5, primary_key=True, default='12345')
IPaddr = models.GenericIPAddressField(max_length=15, default='172.0.0.1')
purpose = models.CharField(max_length=10)
status_choice = ((0, '关机'),
(1, '正常'),
(2, '故障'),
(3, '移除'),
)
status = models.SmallIntegerField(choices=status_choice)
tpye_choice = ((0, '戴尔'), (1, '惠普'), (2, '华硕'), (3, '联想'), (4, '其他'),)
tpye = models.SmallIntegerField(choices=tpye_choice)
harddisk = models.CharField(max_length=5, default='500g')
optionSyetem_choice = ((0, 'winXP'), (1, 'win7'), (2, 'win10'), (3, 'Linux'),)
optionSyetem = models.SmallIntegerField(choices=optionSyetem_choice)
repairTime = models.DateTimeField('修理时间', editable=True)
completeTime = models.DateTimeField('完成时间', editable=True)
def __str__(self):
return self.identifier
class Meta:
verbose_name_plural = "电脑登记"
verbose_name = '电脑登记'
# db_table = 'computer'
ordering = ['identifier']
二、显示一些信息
在网页中,我们添加了数据之后,可以选择需要在网页中显示的相应属性的数据。
在./blog/admin.py中,添加代码。
其中包含了,更改网站的名字,题目等信息。
from django.contrib import admin
# Register your models here.
from .models import Computer,Room
admin.site.site_title = "电脑安全管理系统"
admin.site.site_header = "电脑管理系统"
admin.site.index_title = "电脑信息"
@admin.register(Room)
class RoomAdmin(admin.ModelAdmin):
pass
@admin.register(Computer)
class BlogAdmin(admin.ModelAdmin):
list_display = ('identifier','IPaddr', 'purpose', 'status', 'harddisk', 'optionSyetem', 'repairTime', 'completeTime',)
list_editable = ('status',)
list_per_page = 10
# 设置可以进入编辑的字段
list_display_links = ('IPaddr',)
# 筛选器
list_filter = ('status',)
date_hierarchy = 'repairTime'
三、执行代码
python manage.py makemigrations
python manage.py migrate
#注册登录账户
python manage.py createsuperuser
#运行服务端
python manage.py runserver
四、界面展示
链接:https://pan.baidu.com/s/1Wmqn-AhwpiumEX3g54EX1w
提取码:p2uw