我一个老人家为什么要做一个WEB应用来为难自己(python+django+nginx)(二)

一、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语句就行,很方便)
后台管理目录页
列表页
编辑页
基础功能都有了,后面就是修改一下字段的显示和排列,查查教程就好,后面的事情就是搭建一个服务器,用自带的开发服务器我还是不放心,虽然是自己用,有更好的选择为什么不搞搞呢,估计以后把这个东西完善一下再添点功能,凑和用了,有时间还是多陪陪孩子家人吧,太久没有码字了,脊椎病又犯了,唉,人生苦短,远离代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值