Python学习笔记之Django创建第一个数据库模型的方法


Posted in Python onAugust 07, 2019

Django里面集成了SQLite的数据库,对于初期研究来说,可以用这个学习。

第一步,创建数据库就涉及到建表等一系列的工作,在此之前,要先在cmd执行一个命令:

python manage.py migrate

这个命令就看成一个打包安装的命令,它会根据mysite/settings.py的配置安装一系列必要的数据库表

第二步,我们要建立一个Model层,修改demo/model.py:

from django.db import models
classQuestion(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
classChoice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)

这个Model的内容包括创建表(对象)、确定变量(字段)的类型,以及外键方面的信息

第三步,要激活Model,那么现在helloworld/setting.py中修改:

INSTALLED_APPS =[
'demo.apps.DemoConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

主要是加了第一行的内容,这个在demo/apps下有的。目的是让Django知道有demo这个app。

然后就在cmd下面运行:

python manage.py makemigrations demo

可以看到在demo/migrations/0001_initial.py下面生成了很多代码

继续run这段代码,就完成了建表工作:

python manage.py sqlmigrate demo 0001

再跑一下migrate命令,把这些model创建到数据库表中

python manage.py migrate

第四步,也是比较好玩的了,就是要进入到python django的shell中,执行这个命令:

python manage.py shell

Python学习笔记之Django创建第一个数据库模型的方法

在这个里面,就可以通过命令行操作数据库了

先引入刚才创建好的model:

from demo.models importQuestion,Choice

这个命令,打印出Question所有的对象:

Question.objects.all()

然后创建一个Question的对象(或数据):

from django.utils import timezone
q =Question(question_text="What's new?", pub_date=timezone.now())
q.save()
q.id
q.question_text
q.pub_date
q.question_text = "What's up?"
q.save()
Question.objects.all()

第五步,然后polls/models.py中添加以下代码:

from django.db import models
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible# only if you need to support Python 2
classQuestion(models.Model):
# ...
def __str__(self):
return self.question_text
@python_2_unicode_compatible# only if you need to support Python 2
classChoice(models.Model):
# ...
def __str__(self):
return self.choice_text
import datetime
from django.db import models
from django.utils import timezone
classQuestion(models.Model):
# ...
def was_published_recently(self):
return self.pub_date >= timezone.now()- datetime.timedelta(days=1)

在这里__str__()是一个非常重要的方法,大概可以看成java里pojo对象的一个toString()方法

接下来,就可以在数据库中进行很多操作,在shell中输入以下的代码,就可以执行对数据库的增删查改:

from polls.models importQuestion,Choice
Question.objects.all()
Question.objects.filter(id=1)
Question.objects.filter(question_text__startswith='What')
from django.utils import timezone
current_year = timezone.now().year
Question.objects.get(pub_date__year=current_year)
Question.objects.get(id=2)
Question.objects.get(pk=1)
q =Question.objects.get(pk=1)
q.was_published_recently()
q =Question.objects.get(pk=1)
q.choice_set.all()
q.choice_set.create(choice_text='Not much', votes=0)
q.choice_set.create(choice_text='The sky', votes=0)
c = q.choice_set.create(choice_text='Just hacking again', votes=0)
c.question
q.choice_set.all()
q.choice_set.count()
Choice.objects.filter(question__pub_date__year=current_year)
c = q.choice_set.filter(choice_text__startswith='Just hacking')
c.delete()

操作django Admin

Django的管理端可以管理站点、管理账户权限等等。

在cmd运行以下的脚本创建账户:

python manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password:**********
Password(again):*********
Superuser created successfully.

启动server:

python manage.py runserver 8081

访问链接地址:

http://127.0.0.1:8081/admin/

登录界面:

Python学习笔记之Django创建第一个数据库模型的方法

管理界面:

Python学习笔记之Django创建第一个数据库模型的方法

在demo/admin.py中添加代码注册对象:

from django.contrib import admin
from.models importQuestion
admin.site.register(Question)

刷新后即增加这个对象:

Python学习笔记之Django创建第一个数据库模型的方法

点击Questions进去:

Python学习笔记之Django创建第一个数据库模型的方法

这样,就可以在图形化的界面中执行增删查改了。

以上这篇Python学习笔记之Django创建第一个数据库模型的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 文件与目录操作
Dec 24 Python
Python实现去除代码前行号的方法
Mar 10 Python
使用Python的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
PyQt5 QListWidget选择多项并返回的实例
Jun 17 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
python各层级目录下import方法代码实例
Jan 20 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 Python
python自动计算图像数据集的RGB均值
Jun 18 Python
Python之基础函数案例详解
Aug 30 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 #Python
Python学习笔记之文件的读写操作实例分析
Aug 07 #Python
详解python中__name__的意义以及作用
Aug 07 #Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 #Python
Python编程学习之如何判断3个数的大小
Aug 07 #Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 #Python
python可视化篇之流式数据监控的实现
Aug 07 #Python
You might like
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
Python切片操作实例分析
2018/03/16 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
pytorch梯度剪裁方式
2020/02/04 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
农村婚礼证婚词
2014/01/08 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
Mysql 一主多从的部署
2022/05/20 MySQL