栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【毕业设计】 基于Django的会议室预定系统

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【毕业设计】 基于Django的会议室预定系统

文章目录
  • 0 前言
  • 1 实现效果及业务流程
  • 2 表结构设计和生成
    • 2.1 models.py(用户继承AbstractUser)
    • 2.2 修改配置文件settings.py,覆盖默认的User模型
  • 3 系统登录login
  • 4 index部分
    • 4.1 引入admin组件(后台数据管理组件)并完成admin注册
  • 最后

0 前言

Hi,同学们好呀,被评为全网最细的丹成学长ヾ(•ω•`)o,今天带大家复盘一个学长帮往届同学做的一个毕业作品

基于Django的会议室预定系统


计算机毕设选题大全及项目分享:

https://blog.csdn.net/WEB_DC/article/details/125563252


1 实现效果及业务流程

业务流程:

  • 用户注册
  • 用户登录
  • 预订会议室
  • 退订会议室
  • 选择日期;今日以及以后日期
2 表结构设计和生成 2.1 models.py(用户继承AbstractUser)
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.


class UserInfo(AbstractUser):
    tel = models.CharField(max_length=32,verbose_name="电话")
    avatar = models.FileField(upload_to="avatars/", default="avatars/timg.jpg", verbose_name="头像")


class Room(models.Model):
    """会议室表"""
    caption = models.CharField(max_length=32,verbose_name="会议室名称")
    num = models.IntegerField(verbose_name="容纳人数")  # 容纳人数

    def __str__(self):
        return self.caption

    class Meta:
        verbose_name = "会议室信息"
        verbose_name_plural = verbose_name


class Book(models.Model):
    """会议室预订"""
    user = models.ForeignKey(to="UserInfo",on_delete=models.CASCADE)
    room = models.ForeignKey(to="Room",on_delete=models.CASCADE)
    date = models.DateField()
    time_choice = (
        (1, "8:00"),
        (2, "9:00"),
        (3, "10:00"),
        (4, "11:00"),
        (5, "12:00"),
        (6, "13:00"),
        (7, "14:00"),
        (8, "15:00"),
        (9, "16:00"),
        (10, "17:00"),
        (11, "18:00"),
        (12, "19:00"),
        (13, "20:00"),
        (14, "21:00"),
        (15, "22:00"),
        (16, "23:00"),
    )

    time_id = models.IntegerField(choices=time_choice)

    def __str__(self):
        return str(self.user)+"预定了"+str(self.room)

    class Meta:
        verbose_name = "预定信息"
        verbose_name_plural = verbose_name
        unique_together = (
            ("room","date","time_id"),  # 这三个字段联合唯一,防止重复预订
        )
2.2 修改配置文件settings.py,覆盖默认的User模型

Django允许你通过修改setting.py文件中的 AUTH_USER_MODEL 设置覆盖默认的User模型,其值引用一个自定义的模型。

AUTH_USER_MODEL = "app01.UserInfo"

上面的值表示Django应用的名称(必须位于INSTALLLED_APPS中)和你想使用的User模型的名称。

注意:在创建任何迁移或者第一次运行 manager.py migrate 前设置 AUTH_USER_MODEL。

设置AUTH_USER_MODEL数据库结构有很大的影响。改变了一些会使用到的表格,并且会影响到一些外键和多对多关系的构造。在你有表格被创建后更改此设置是不被 makemigrations 支持的,并且会导致你需要手动修改数据库结构,从旧用户表中导出数据,可能重新应用一些迁移。

3 系统登录login

urls.py:

from django.conf.urls import url
from django.contrib import admin
from django.views.static import serve
from django.conf import settings
from app01 import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # 用户登录
    url(r'^login/',views.acc_login),
    # 展示预订信息
    url(r'^index/',views.index),
    # 极验滑动验证码 获取验证码的url
    url(r'^pc-geetest/register', views.get_geetest),
    # media相关的路由设置
    url(r'^media/(?P.*)$', serve, {"document_root": settings.MEDIA_ROOT}),
    # 处理预订请求
    url(r'^book/',views.book),
    # 首页
    url(r'^home/',views.home),
    # 注销
    url(r'^logout/',views.acc_logout),
    # 用户注册
    url(r'^reg/',views.reg),
    # 临时测试
    url(r'^test/',views.test),
    # 修改密码
    url(r'^change_password/',views.change_password),


]

login.html(使用了滑动验证)




    
    用户登录
    
    
    


欢迎登录会议室预订系统
{% csrf_token %}

4 index部分 4.1 引入admin组件(后台数据管理组件)并完成admin注册
from django.contrib import admin
from app01 import models
from django.contrib.auth.admin import UserAdmin
from django.utils.translation import gettext_lazy
# Register your models here.


#  配置会议室信息表
class RoomConfig(admin.ModelAdmin):
    list_display = ('caption','num')
    list_filter=('num',)
    search_fields = ('caption','num')


# 配置预订信息表
class BookConfig(admin.ModelAdmin):
    list_display = ('user','room','date','time_id')
    list_filter = ('user','room','date','time_id')
    search_fields = ('user','room','date','time_id')


# 配置用户管理表
class UserProfileAdmin(UserAdmin):
    list_display = ('username','last_login','is_superuser','is_staff','is_active','date_joined')
    list_filter = ('last_login', 'is_staff', 'date_joined', 'is_active')
    search_fields = ('username',)
    fieldsets = (
        (None,{'fields':('username','password','first_name','last_name','email')}),

        (gettext_lazy('用户信息'),{'fields':('username','email','tel','avatar')}),

        (gettext_lazy('用户权限'), {'fields': ('is_superuser','is_staff','is_active',
                                                  'groups', 'user_permissions')}),

        (gettext_lazy('Important dates'), {'fields': ('last_login', 'date_joined')}),
    )

admin.site.register(models.Room,RoomConfig)
admin.site.register(models.UserInfo,UserProfileAdmin)
admin.site.register(models.Book,BookConfig)


计算机毕设选题大全及项目分享:

https://blog.csdn.net/WEB_DC/article/details/125563252


最后
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号