3. Models模型篇(数据库)
---------------------------------------------------------------
Django的 模型是跟数据库 相关的。所以与数据库相关的一般写在models.py中(这里默认使用SQlite3,不用配置)
这里新建learn_models工程,工程下建立people应用,添加到setting.py中。之后修改工程文件下models.py
上面的代码中,从models.Model继承得到 Person类,其中包含了名字和年龄
之后在终端----python manage.py makemigrations 1
-----python manage.py migrate 2 #创建Migrations然后migrate生成相应的数据表(自动更新的)
到这里就创建出了相关的数据库的表,比如新建的people_person的表,这里是 APP名__类名
之后在对创建的表进行相应操作,包括新建对象、删除对象等等
-----进入shell
-----from people.models import Person
-----Person.objects.create(name="",age=24) #这里就是创建对象,同时还有获取对象、过滤对象等操作
这里讲了很多很多关于数据库的操作,看的人头晕。没有逐条整理,个人感觉跟Django的整体框架没有什么关系,不知道作者出于什么考虑来讲了这么多数据库的东西。可能是我还没到那个境界吧。先跳过数据库这一部分,以后用到的话,回来再看。
---------------------------------------------------------------------------------------
数据库操作----数据导入
数据导入,比如说网上下载的东西想要导入到我们的数据库里(避免一个个复制粘贴),
在同步数据库,建立相应的表的基础上:
其一,可以用一个.py脚本将相应的TXT形式的文件内数据导入数据库。(这个方法没有什么特殊的)
可以看一下除了用For循环来做,还可以用列表解析;除了create方法,为了避免重复导入数据,可以用get_or_create()方法,不过会慢一点。
其二,可以用Django特有的Fixture导入.json类型的数据
比如这里,先在App名下建立Fixtures文件夹,之后在里面建立相关的xxx.json文件,在文件里面按照json结构写数据(这里要兼顾本APP类名这些的东西。)
之后,在终端运行 manage.py loaddata xxx.json即可导入完成
------------------------------------------------------ ----------------------------
数据库操作----数据迁移
1)最简单的迁移就是导入导出。 导入已经说过 。
导出只需要在终端 manage.py dumpdata > xxxx.json 导出所有APP的数据。
dumpdata appname 导出app下的所有数据
dumpdata auth 导出所有用户数据 还有很多类似的操作
2) 所谓的数据迁移,就是从这个服务器导出,在下一个服务器导入。就用JSon格式就可以
但是不同的数据库之间,会存在一些问题,比如sqlite3不会检查MAX_Legth,数据个数,其他数据库就会检查,类似问题会存在。