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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

创建app:

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

1
2
3
4
5
# 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中的数据库配置项,如下:

1
2
3
4
5
6
7
8
9
10
11
# 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' ,
     }
}

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

1
# python manage.py migrate


Django模型:

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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将应用程序包含到项目中。如下:

1
2
3
4
5
6
7
8
9
10
# 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来存储和操作该模型:

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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模型。

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

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

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

1
2
3
4
5
6
7
# 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/,进行模型的数据操作。

   捕获.PNG

   2.PNG

    3.PNG

    4.PNG

    5.PNG










本文转自 icenycmh 51CTO博客,原文链接:http://blog.51cto.com/icenycmh/2045020,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
2月前
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
119 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
2月前
|
机器学习/深度学习 前端开发 网络架构
Django如何调用机器学习模型进行预测
Django如何调用机器学习模型进行预测
77 5
|
2月前
|
机器学习/深度学习 监控 数据挖掘
基于Django和百度飞桨模型的情感识别Web系统
基于Django和百度飞桨模型的情感识别Web系统
47 5
|
2月前
|
机器学习/深度学习 算法 搜索推荐
django调用矩阵分解推荐算法模型做推荐系统
django调用矩阵分解推荐算法模型做推荐系统
46 4
|
2月前
|
SQL Java 数据库
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
这篇文章是关于如何使用Django框架的ORM系统在视图(views)层面进行数据库的增、删、改、查操作的教程。
25 0
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
|
2月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
95 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
2月前
|
存储 开发框架 JSON
【查漏补缺】Django模型字段类型及其应用
【查漏补缺】Django模型字段类型及其应用
30 0
|
4月前
|
API 数据库 开发者
【独家揭秘】Django ORM高手秘籍:如何玩转数据模型与数据库交互的艺术?
【8月更文挑战第31天】本文通过具体示例详细介绍了Django ORM的使用方法,包括数据模型设计与数据库操作的最佳实践。从创建应用和定义模型开始,逐步演示了查询、创建、更新和删除数据的全过程,并展示了关联查询与过滤的技巧,帮助开发者更高效地利用Django ORM构建和维护Web应用。通过这些基础概念和实践技巧,读者可以更好地掌握Django ORM,提升开发效率。
51 0
|
4月前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API