您好,登錄后才能下訂單哦!
創建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/,進行模型的數據操作。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。