Django框架学习第二天总结(2018 / 8 / 18)晴
对于python中的元类实现ORM的方法,我自己也做过一些简单的分析
可以点击链接看一下我之前的博客 ,这里就不多说了,直接进入正题
今天学到的东西不多,但也不少。今天是对于 Django学习第二天,在昨天 安装了 Django ,进行了简单的认识基础上,学习了 如何使用 Django中内置的 ORM 通过模型类来创建数据表,进行数据表的一些简单的操作。下面就是关于今天的总结:
首先,我需要复习一下昨天的东西,进行Ubantu中安装Django及虚拟环境的补充:
这里很简单,就直接上 命令走流程了,需要强调的地方我都做了注释的
Ubantu中创建 Django项目的步骤
我在安装Ubantu虚拟环境时报错用到的解决方法:
https://blog.csdn.net/mbl114/article/details/78089741
https://blog.csdn.net/gyniu/article/details/81022534
**具体安装步骤:**
【1】安装 virtualenv 虚拟环境:
pip install virtualenv
【2】安装 virtualenvwrapper 虚拟环境扩展包:
pip install virtualenvwrapper
【3】sudo vim .bashrc
(Ctrl + g 回到最后一行,按 i 插入两行代码):
export WORKON_HOME=$HOME/.virtualenvs #($HOME/.virtualenvs——表示虚拟环境存放在当前目录的HOME/.virtualenvs中)
source ~/.local/bin/virtualenvwrapper.sh #(表示virtualenvwrapper.sh的存放路径是:当前目录下的.local/bin/virtualenvwrapper.sh)
【4】 添加环境变量:
VIRTUALENVWRAPPER_PYTHON=~/.local/bin
【5】创建虚拟环境:# 创建一个名字为envname的虚拟环境
mkvirtualenv envname
【6】workon [tab tab] 找到刚刚创建的虚拟环境,进入虚拟环境
【7】创建 Django项目和应用
django-admin startproject t1
安装sqlite可视化界面
sudo apt-get install sqlitebrowser
在终端界面直接输入 sqlitebrowser 可进入界面
cd t1
python3 manage.py startapp a1
然后,把 t1中的 settings.py 中的 INSTALLED_APPS中最后加入 'a1',
然后回到终端,python3 manage.py runserver
然后到浏览器里输入 http://127.0.0.1:8000/ 测试成功
对于我来说,前几次安装问题出在了为了安装快,临时更改了ubantu 的python3的pip安装源
so,我的建议是不要随便更改。
接下来,就是今天的内容总结了:
如何通过django内置的ORM来创建数据表?
【1】
首先
需要在创建的Django应用中打开models.py
这个文件,然后在里面创建类,创建的这个类叫做“模型类”
,创建的模型类的类属性,对应着数据表中的字段。这个创建的类,必须继承models里面的Model
。这里,CharField
代表字符串类型,max_length=20
代表最大长度为20,DateField
表示日期时间类型,其中ID以主键的方式自动生成
。BooleanField
表示布尔类型的数据,这里建立外键是models.ForiegnKey('BookInfo')
其他的,这里都挺简单的,没什么可说的了。
【2】然后
,需要生成迁移文件
,迁移文件是根据模型类生成的,生成的迁移文件保存在创建的应用的 migrations 中。迁移文件就是把类里面的属性拿出来,然后再自动添加一个ID 主键,把这些信息生成到一个新的文件中。
python3 manage.py makemigrations
可以完成这步操作。
【3】最后
,根据迁移文件生成表
,生成的数据不,会默认保存在 Sqlite3数据库中,需要先安装,安装完成就可以打开查看相应的生成的数据表了。
根据迁移文件生成表的操作:python3 manage.py migrate
安装可视化界面的Sqlite3的操作:sudo apt-gte install sqlitebrowser
当然,也可以更改默认的数据库:在 settings.py 中可以更改。
最后,要说的是,生成的表的名字—— 应用名+小写的模型类的名字
通过Django终端对数据进行增删改查
【1】进入Django终端:
python3 manage.py shell
【2】导入刚刚创建好的 模型类:
from t1.models import BookInfo,HuMan
【3】根据两个模型类分别创建实例对象
b = BookInfo()
/c = HuMan()
【4】为实例对象添加实例属性(即给表中的字段添加数据)
b.btitle = "XXX"
/c.hgender = False
————————————————
其他增删操作看下图:
这里有一个地方需要说一下,你创建每一个实例对象,都代表不同的一条数据,我们只需要对实例对象的属性进行修改就可以达到对数据表中数据进行修改的目的。
【5】修改完数据,就需要进行保存才可以生效。
b.save()
/c.save()
这只是一小部分命令,其他还有很多,就不一 一 介绍了
这期间呢,遇到一个问题,需要注意一下:
这个问题的原因,其实只是因为 ForiegnKey 拼写错误造成的。开始我认为的是 两个表之间不能建立外间关系,但是后来才发现是 大小写问题造成的。