资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Django学习2--创建应用程序、models模型管理、系统管理后台-创新互联

创建app:

在土默特右旗等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都做网站 网站设计制作按需网站策划,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站,成都外贸网站建设公司,土默特右旗网站建设费用合理。

   这里,我创建一个资产系统的app,名为assets:

# cd iceny
# python manage.py startapp assets
# cd assets
# ls 
#admin.py  apps.py  __init__.py  migrations  models.py  tests.py  views.py

  startapp命令建立了应用程序所需的基础设施,其中最重要的是models.py,admin.py,views.py。

  models.py:定义在应用程序中管理的数据。

  views.py:定义在项目使用过程中需要执行的视图(操作)。

  admin.py:用于向后台管理网站注册创建的模型(models)。

修改数据库配置:

    Django默认使用SQLite数据库为默认的数据库,如果我们想使用我们自己的mysql数据,则需要修改setting中的数据库配置项,如下:

# vi iceny/iceny/settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'iceny',
        'USER': 'root',
        'PASSWORD': 'xxxxxx',
        'HOST':'xx.xx.xx.xx',
        'PORT':'3306',
    }
}

  定义好数据库后,就可以初始化数据库。

# python manage.py migrate

Django模型:

    models.py可以定义一个Django的模型,模型其实就是等于数据库的一张表,在models里,我们可以定义这张表的表名,字段,及字段存储的数据类型,这里可以简单的理解为定义了一段创建表的语句。

    本例中,我们在aseets程序中创建一个Server_Info模型:

# vi assets/models.py
from django.db import models

class Server_Info(models.Model):
    env = models.CharField(max_length=20,null=False)
    hostname = models.CharField(max_length=20,null=True)
    ip_in = models.CharField(max_length=20,null=True)
    ip_out = models.CharField(max_length=20,null=True)
    os = models.CharField(max_length=100,null=True)
    mem = models.CharField(max_length=50,null=True)
    disk = models.CharField(max_length=100,null=True)
    cpu = models.CharField(max_length=100,null=True)
    cpu_thread = models.IntegerField(null=True)
    other_info = models.CharField(max_length=200,null=True)

     在这里,我们定义了一个Server_Info表来存储服务器的信息,并定义了该表的一些字段,如主机名、ip、内存之类。

   编写好Model.py文件后,需要激活模型,要使用模型,就要让Django将应用程序包含到项目中。如下:

# vi iceny/iceny/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'assets',         ##把新建的程序添加到这里
    ]

  接下来,可以通过Django来创建我们在model.py中定义的表,使我们可以通过Django来存储和操作该模型:

# python manage.py makemigration assets
Migrations for 'assets':
  0001_initial.py:
     - Create model Server_Info

   可以看到创建了模型Server_Info,进入mysql数据库看看是否创建了相关的表:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| iceny              |           ------创建的项目库
| mysql              |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.01 sec)

mysql> use iceny
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------------------+
| Tables_in_iceny            |
+----------------------------+
| assets_server_info         |        ---assets.server_info模型
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
+----------------------------+
12 rows in set (0.00 sec)

mysql> desc assets_server_info;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
| env        | varchar(20)  | NO   |     | NULL    |                |
| hostname   | varchar(20)  | YES  |     | NULL    |                |
| ip_in      | varchar(20)  | YES  |     | NULL    |                |
| ip_out     | varchar(20)  | YES  |     | NULL    |                |
| os         | varchar(100) | YES  |     | NULL    |                |
| mem        | varchar(50)  | YES  |     | NULL    |                |
| disk       | varchar(100) | YES  |     | NULL    |                |
| cpu        | varchar(100) | YES  |     | NULL    |                |
| cpu_thread | int(11)      | YES  |     | NULL    |                |
| other_info | varchar(200) | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
11 rows in set (0.13 sec)

  Django已创建了项目所需的数据库,相关表,以及我们定义的模型相关的表。

Django后台管理网站:

  创建了模型之后,我们需要对模型进行操作,让它存储一些相关的数据到数据库中,Django提供了一个后台管理页面,可以让我们简单地操作Django模型。

  要使用后台管理,首先需要创建一个超级用户:

# python3.6 manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: 
Password: 
Password (again): 
Superuser created successfully.

  向管理网站注册模型:(注:Django默认已经在管理网站中添加了一些模型,比如User和Group)

# vi iceny/assets/admin.py
from django.contrib import admin
from assets.models import Server_Info        ---导入自定义模型

# Register your models here.

admin.site.register(Server_Info)            --注册模型

  完成以上步骤后,开启Django,访问站点:http://xx.xx.xx.xx:8081/admin/,进行模型的数据操作。

 Django学习2--创建应用程序、models模型管理、系统管理后台

 Django学习2--创建应用程序、models模型管理、系统管理后台

  Django学习2--创建应用程序、models模型管理、系统管理后台

  Django学习2--创建应用程序、models模型管理、系统管理后台

  Django学习2--创建应用程序、models模型管理、系统管理后台

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


文章名称:Django学习2--创建应用程序、models模型管理、系统管理后台-创新互联
标题来源:http://cdkjz.cn/article/dhcdog.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220