• django 简单会议室预约(2)


    --我们先打开settings.py 配置文件:

    import os
    
    #指明django APP目录路径
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
    #True表示当你调试的时候出现的错误就会报出来,生产环境要关闭
    DEBUG = True	
    
    #一个元组表示当网站出现问题时,会发送邮件到你的邮箱
    ADMINS = (    # ('Your Name', 'your_email@example.com'),)
    
    #数据库(支持mysql,sqlite等),这里用的是mysql,数据库名dat01,用户root,密码123456.。。。
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',  
            'NAME': 'dat01',                        
            'USER': 'root',                         
            'PASSWORD': '123456',                   
            'HOST': '127.0.0.1',                    
            'PORT': '',                           
        }
    }
    
    #sqlite3配置
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    
    
    #设置时区
    TIME_ZONE = 'Asia/Shanghai'
    
    #设置语言
    LANGUAGE_CODE = 'zh-cn'
    
    #静态文件存放目录
    STATIC_URL = '/static/'
    
    #模板配置,目录路径
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(os.path.dirname(__file__), 'templates')],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    
    #在里面添加新创建的应用,格式要和原来的一致
    INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    	'djapp',
        'django.contrib.admin',
        'django.contrib.admindocs',
    )
    
    #日志格式
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'filters': {
            'require_debug_false': {
                '()': 'django.utils.log.RequireDebugFalse'
            }
        },
        'handlers': {
            'mail_admins': {
                'level': 'ERROR',
                'filters': ['require_debug_false'],
                'class': 'django.utils.log.AdminEmailHandler'
            }
        },
        'loggers': {
            'django.request': {
                'handlers': ['mail_admins'],
                'level': 'ERROR',
                'propagate': True,
            },
        }
    }

    --然后打开models.py创建数据库模型:

    from django.db import models
    from django.contrib.auth.models import User     #这里调用django的用户管理模块
    
    #注册用户模型
    class MyUser(models.Model):
    	user = models.OneToOneField(User)      #这里的user与User是一对一的关系
    	phone = models.CharField(max_length=11)#字符型,必须有个参数max_length字符最大值
    	def __unicode__(self):
    		return self.user.username	#返回的对象为username
    #会议室模型	
    class ConfeRoom(models.Model):
    	num = models.CharField(max_length=5)
    	name=models.CharField(max_length=50)
    	size=models.CharField(max_length=5)
    	acad=models.CharField(max_length=30)
    	class MEAT:					#引入MEAT中间件,为了在前端显示的时候以“num”顺序排列,与下一个类似
    		ordering = ["num"]
    	def __unicode__(self):
    		return self.num
    #会议室详情
    class Detail(models.Model):
    	name = models.CharField(max_length=50)
    	img = models.ImageField(upload_to = "image")	#图片类型,参数表示上传图片
    	time=models.CharField(max_length=20)
    	room = models.ForeignKey(ConfeRoom)		#这里采用多对一的关系,一个学院有很多会议室,而一个会议室只能属于一个学院
    	class MEAT:
    		ordering = ["name"]
    	def __unicode__(self):
    		return self.name
    #订单信息
    class Order(models.Model):
    	user = models.CharField(max_length=30)
    	num=models.CharField(max_length=10)
    	name=models.CharField(max_length=50)
    	time=models.CharField(max_length=20)
    	size=models.CharField(max_length=5)
    	phone = models.CharField(max_length=11)
    	ntime = models.CharField(max_length=30)
    	def __unicode__(self):
    		return self.user

    --配置完后再来创建数据库:1、先打开数据库,创建数据库dat01:

    mysql> create database dat01 default character set utf8;
    因为要插入中文,所以创建时字符集设为utf8,要注意SQL语句后面的分号。

    2、再同步数据库:

    在1.7以前是这样的命令:
    lifelong@Uhack:~/dat/dat01$ python manage.py syncdb		#该命令用来同步数据库
    Creating tables ...						#开始创建表了、、、、、
    Creating table auth_permission
    Creating table auth_group_permissions
    Creating table auth_group
    Creating table auth_user_user_permissions
    Creating table auth_user_groups
    Creating table auth_user
    Creating table django_content_type
    Creating table django_session
    Creating table django_site
    Creating table djapp_myuser
    Creating table djapp_conferoom
    Creating table djapp_detail
    Creating table djapp_order
    You just installed Django's auth system, which means you don't have any superusers defined.
    Would you like to create one now? (yes/no): yes		#是否创建管理用户,这里是yes
    Username (leave blank to use 'lifelong'): root		#管理员名
    E-mail address: root@root.com				#邮箱	
    Password: 						#密码
    Password (again): 
    Superuser created successfully.
    Installing custom SQL ...
    Installing indexes ...
    Installed 0 object(s) from 0 fixture(s)
    在1.7以后换成更加好用的命令:
    python manage.py makemigrations
    python manage.py migarte
    当你修改了表时,可以直接用下面命令来同步了
    python manage.py migarte


    <pre name="code" class="python">
    
    看见上面的很多行,表就已经键好了
    


    ********第一次写博客,有写的与其他人雷同的地方纯属巧合,谢谢支持********


  • 相关阅读:
    每日日报2021.4.14
    每日日报2021.4.13
    每日日报2021.4.12
    每日日报2021.4.9
    每日日报2021.4.8
    每日日报2021.4.7
    每日日报2021.4.6
    每日日报2021 4/22
    每日日报2021 4/21
    每日日报2021 4/20
  • 原文地址:https://www.cnblogs.com/imlifelong/p/10651335.html
Copyright © 2020-2023  润新知