美文网首页python
Django_项目:实现设备管理系统

Django_项目:实现设备管理系统

作者: LittleJessy | 来源:发表于2018-10-25 17:54 被阅读326次

    需求:
    1、手机分类:ios、安卓,特性:指纹识别、系统、屏幕尺寸、是否全面屏
    2、选择后查询出当前库中手机记录;
    3、查出未借出手机记录后可进行借出操作,填写借出人姓名,并记录当前日期
    4、可查询出已借出手机记录:日期、借出人名称
    5、已借出记录可进行归还操作,记录归还人名称,日期

    一、创建项目
    1、进入站点目录Python\Python36\Scripts输入:
    django-admin startproject equipments
    二、启动项目
    1、站点目录输入:
    python manage runserver
    2、构建Django 后端:
    python manage.py makemigrations
    python manage.py migrate
    3、创建超级用户:
    python manage.py createsuperuser
    username:admin
    password:
    4、登录后端:http://127.0.0.1:8000/admin/
    5、后端汉化,进入equipments/setting.py

    image.png
    三、创建应用
    1、equipments目录下输入:
    python manage.py startapp phoneinfo
    2、将应用加入到equipment项目中,在settings.py添加
    image.png
    四、更改数据库连接
    Django默认连接的是SQLite,修改为本地安装的MySQL,修改settings.py文件:
    image.png
    五、创建数据库
    1、phoneinfo/models.py文件中创建数据库,本次设计了两张表:Phoneinfo用来记录手机信息,Borrow_record_info用来记录借还数据。
    class Phoneinfo(models.Model):
    mobile_name = models.CharField('手机名称',max_length=64)
    ios_or_andriod = (
    (0,'ios'),
    (1,'andriod')
    )
    phone_type = models.IntegerField(choices=ios_or_andriod,default=1)
    resolution_rate = models.CharField('手机分辨率',max_length=20)
    system_name = models.CharField('系统型号', max_length=10)
    is_comprehensive_screen = models.BooleanField('是否为全面屏')
    comprehensive_screen = (
    (0,'否'),
    (1,'是')
    )
    is_comprehensive_screen = models.IntegerField(choices=comprehensive_screen,default=0)
    finger_print = (
    (0,'否'),
    (1,'是')
    )
    is_finger_print = models.IntegerField(choices=finger_print,default=0)
    borrow_status = (
    (0,'未借出'),
    (1,'已借出')
    )
    status = models.IntegerField(choices=borrow_status,default=0)
    pic_url = models.CharField('图片上传路径', max_length=200, blank=True)
    create_time = models.DateTimeField('创建时间',auto_now=True)
    equip_status = (
    (0,'可用'),
    (1,'不可用')
    )
    yn = models.IntegerField(choices=equip_status,default=0)
    class Meta:
        verbose_name = '手机信息'
        verbose_name_plural = '手机信息'
    
    def __str__(self):
        return self.mobile_name
    

    class Borrow_record_info(models.Model):
    borrow_mobile = models.ForeignKey('phoneinfo.phoneinfo',on_delete=models.CASCADE,)
    borrow_person = models.CharField('借出人',max_length=20)
    borrow_department = models.CharField('借出人部门',max_length=20,null=True)
    borrow_time = models.DateTimeField('借出时间', auto_now=True)
    back_time = models.CharField('归还时间',max_length=40,null=True,blank=True)
    status = (
    (0,'已归还'),
    (1,'未归还')
    )
    borrow_status = models.IntegerField(choices = status,default=1)
    borrow_remark = models.CharField('备注',max_length=20,null=True)
    class Meta:
    verbose_name = '借还记录'
    verbose_name_plural = '借还记录'

    def __str__(self):
        return self.borrow_person
    

    2、迁移同步数据库和表结构
    python manage.py makemigrations
    python manage.py migrate
    六、创建视图,在views.py文件中添加:
    def login(request):
    if request.POST:
    username = request.POST.get('username')
    password = request.POST.get('password')
    user = auth.authenticate(username=username,password=password)
    if user is not None and user.is_active:
    auth.login(request,user)
    request.session['user'] = username
    response = HttpResponseRedirect('/home/')
    return response
    else:
    return render(request,'login.html',{'error':'用户名 或 密码错误!'})
    return render(request,'login.html')
    七、创建映射,在urls.py文件中添加:
    from phoneinfo import views
    urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/',views.login),
    ]
    八、创建模板,在phoneinfo下创建templates文件夹,并在该文件夹下创建login.html文件:
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>手机设备管理平台</title>
    <style>body{text-align:center}</style>
    </head>
    <body>
    <div>
    <font size="1">
    <h1>手机设备管理平台</h1>
    </font>
    <form method="post" action="/login/">
    {% csrf_token %}

    <a>  用户名:</a> <input name="username" type="username" placeholder="test">


    <a>  密   码:</a> <input name="password" type="password" placeholder="123456">

    <a style="color:red">{{ error }}

      <button style="width:240px;height:28px;" id="submit" type="submit">登录</button>
    </form>
    </div>
    </body>
    </html>

    后续添加页面、功能等方式:创建视图--创建映射--创建模板
    具体代码实现见GitHub:
    https://github.com/JessyX001/equipments_manage.git

    管理页面:


    image.png

    添加设备:


    image.png
    修改设备:
    image.png

    删除设备:


    image.png
    借出记录:
    image.png

    添加借出记录:


    image.png

    归还借出:


    image.png

    相关文章

      网友评论

        本文标题:Django_项目:实现设备管理系统

        本文链接:https://www.haomeiwen.com/subject/ziafzftx.html