一、Django2常用命令:
安装Django: pip install django 指定版本 pip3 install django==2.0
新建项目: django-admin.py startproject mysite
新建APP : python manage.py startapp blog
启动:python manage.py runserver 8080
同步或者更改生成 数据库:
python manage.py makemigrations
python manage.py migrate
清空数据库: python manage.py flush
创建管理员: python manage.py createsuperuser
修改用户密码: python manage.py changepassword username
Django项目环境终端: python manage.py shell
这个命令和 直接运行 python 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据的测试非常方便。
二、配置修改settings.py
1.我的项目需要修改到的地方:
ALLOWED_HOSTS = [’*’] 代表所有用户访问
INSTALLED_APPS= [‘App’] 后面添加 App,注册应用app,项目文件中,新增应用后要及时再配置文件中进行注册
LANGUAGE_CODE = ‘zh-hans’
TIME_ZONE = ‘Asia/Shanghai’
USE_I18N = True
USE_L10N = False
USE_TZ = False
DATETIME_FORMAT = ‘Y-m-d H:i:s’
DATE_FORMAT = ‘Y-m-d’
三、先生成一个超级用户,
#先生成默认数据库,不然你进去会报错
python manage.py migrate
#再生成超级用户,按要求输入账号,邮箱,密码即可。
python manage.py createsuperuser
四、启动服务器,看看admin里面什么样,顺便 看看你配置是否有误
python manage.py runserver 8080
浏览器打开127.0.0.1:8080/admin/ 输入超级用户账号,我反正是可以打开,没有什么问题。
五、开始配置你APP的models.py
from django.db import models #系统自带
from datetime import datetime #时间字段要用到
from django.utils.html import format_html #字体变色要用到html格式化
#-----以下是服务器主机相关模型-------所属机房一对多主机表的关系,一要在多的前面
class ServiceRoom(models.Model):
'''故障类型选项'''
gz_choices = (('a', u'硬件故障'), ('b', u'停电'), ('c', u'内部线路故障'), ('d', u'运营商线路故障'),('e', u'其它故障'))
gz_type = models.CharField(choices=gz_choices,max_length=32,verbose_name='故障类型')
room_name=models.CharField(default="上海总部",max_length=12)
class Meta:
db_table = "serviceroom" #这里是添加到数据库的表名,坑:不写这行,系统会聪明的改你的表名。
verbose_name = '机房信息表'#你在管理页左侧例表要显示的栏目名字
verbose_name_plural = verbose_name
def __str__(self):
return self.room_name #返回一个值,如果是日期会报错,自己体会
class ServiceHost(models.Model):
#注意service_room字段,因为与机房表产生多对一关系,系统会自动在字段后面加ID,如:service_room_id
service_room=models.ForeignKey(ServiceRoom,on_delete=models.CASCADE,verbose_name='所属机房')
service_mark = models.CharField(max_length=256, blank=True,verbose_name='用途')
class Meta:
db_table = "servicehost"
verbose_name = '服务器主机信息表'
verbose_name_plural = verbose_name
def __str__(self):
return self.service_mark
终端输入:python manage.py makemigratios #生成迁移记录,不是真的写进数据库
python manage.py migrate #生成数据库实体表
#坑:编写记得每下一行空四个格,不然会报错,不要用中文全角。
#坑:写数据库模型前,尽量先想好,各种一对一,一对多,多对多的关系先想好,一旦migrations,migrate,再来增加,会有一些提示,刚开始不懂,把迁移文件删了,把models文件删了,重新再写,再migrations,migrate,当然可以,后来其实系统提示两个选项的时候,选2退出,,然后在新加的字段后面加上default=""就可以了。
其它多个模型类似不做记录。
六、生成数据库后,修改你APP的admin.py
from django.contrib import admin#系统自带
from .models import ServiceRoom#机房表
from .models import ServiceHost #主机信息表
#在admin页显示的相关配置
class ServiceHostAdmin(admin.ModelAdmin):
#列表页要显示的字段,可以选择该表中的某几个字段
list_display = ('service_ip','service_state','service_room')
class ServiceRoomAdmin(admin.ModelAdmin):
list_display = ('room_name',)
#将模型表注册到管理页
admin.site.register(ServiceHost,ServiceHostAdmin)#主机信息表
admin.site.register(ServiceRoom,ServiceRoomAdmin)#机房表
七、开始配置你的APPS.PY
from django.apps import AppConfig class MyhostConfig(AppConfig):
name = ‘myhost’ # 确定app的名称
verbose_name = ‘主机设备’ # + 在管理页中显示APP名称为
verbose_name_plural = verbose_name # + app复数显示`
#这里要修改配置文件, 把‘myhost’去掉,加入 ‘myhost.apps.MyhostConfig’,不然会报错,两者只能留一个。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myhost.apps.MyhostConfig',
#'myhost'
]
八、所有工作都做完后,如图:(忘了讲,数据库用的自带的sqllite3,啥也不用配置,会sql语句就行,很方便)
基础功能都有了,后面就是修改一下字段的显示和排列,查查教程就好,后面的事情就是搭建一个服务器,用自带的开发服务器我还是不放心,虽然是自己用,有更好的选择为什么不搞搞呢,估计以后把这个东西完善一下再添点功能,凑和用了,有时间还是多陪陪孩子家人吧,太久没有码字了,脊椎病又犯了,唉,人生苦短,远离代码。
来源:CSDN
作者:穿过你黑发的我的脸
链接:https://blog.csdn.net/weixin_43315693/article/details/104795083