Django学习2--创建应用程序、models模型管理、系统管理后台
创建app:
这里,我创建一个资产系统的app,名为assets:
#cdiceny#pythonmanage.pystartappassets#cdassets#ls#admin.pyapps.py__init__.pymigrationsmodels.pytests.pyviews.py
startapp命令建立了应用程序所需的基础设施,其中最重要的是models.py,admin.py,views.py。
models.py:定义在应用程序中管理的数据。
views.py:定义在项目使用过程中需要执行的视图(操作)。
admin.py:用于向后台管理网站注册创建的模型(models)。
修改数据库配置:
Django默认使用SQLite数据库为默认的数据库,如果我们想使用我们自己的mysql数据,则需要修改setting中的数据库配置项,如下:
#viiceny/iceny/settings.pyDATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'iceny','USER':'root','PASSWORD':'xxxxxx','HOST':'xx.xx.xx.xx','PORT':'3306',}}
定义好数据库后,就可以初始化数据库。
#pythonmanage.pymigrate
Django模型:
models.py可以定义一个Django的模型,模型其实就是等于数据库的一张表,在models里,我们可以定义这张表的表名,字段,及字段存储的数据类型,这里可以简单的理解为定义了一段创建表的语句。
本例中,我们在aseets程序中创建一个Server_Info模型:
#viassets/models.pyfromdjango.dbimportmodelsclassServer_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将应用程序包含到项目中。如下:
#viiceny/iceny/settings.pyINSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','assets',##把新建的程序添加到这里]
接下来,可以通过Django来创建我们在model.py中定义的表,使我们可以通过Django来存储和操作该模型:
#pythonmanage.pymakemigrationassetsMigrationsfor'assets':0001_initial.py:-CreatemodelServer_Info
可以看到创建了模型Server_Info,进入mysql数据库看看是否创建了相关的表:
mysql>showdatabases;+--------------------+|Database|+--------------------+|information_schema||iceny|------创建的项目库|mysql||performance_schema||test|+--------------------+6rowsinset(0.01sec)mysql>useicenyReadingtableinformationforcompletionoftableandcolumnnamesYoucanturnoffthisfeaturetogetaquickerstartupwith-ADatabasechangedmysql>showtables;+----------------------------+|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|+----------------------------+12rowsinset(0.00sec)mysql>descassets_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||+------------+--------------+------+-----+---------+----------------+11rowsinset(0.13sec)
Django已创建了项目所需的数据库,相关表,以及我们定义的模型相关的表。
Django后台管理网站:
创建了模型之后,我们需要对模型进行操作,让它存储一些相关的数据到数据库中,Django提供了一个后台管理页面,可以让我们简单地操作Django模型。
要使用后台管理,首先需要创建一个超级用户:
#python3.6manage.pycreatesuperuserUsername(leaveblanktouse'root'):adminEmailaddress:Password:Password(again):Superusercreatedsuccessfully.
向管理网站注册模型:(注:Django默认已经在管理网站中添加了一些模型,比如User和Group)
#viiceny/assets/admin.pyfromdjango.contribimportadminfromassets.modelsimportServer_Info---导入自定义模型#Registeryourmodelshere.admin.site.register(Server_Info)--注册模型
完成以上步骤后,开启Django,访问站点:http://xx.xx.xx.xx:8081/admin/,进行模型的数据操作。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。