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 相关文章推荐
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
Jan 19 Python
python实现忽略大小写对字符串列表排序的方法
Sep 25 Python
Python实现的简单算术游戏实例
May 26 Python
python实现单向链表详解
Feb 08 Python
numpy中矩阵合并的实例
Jun 15 Python
pyttsx3实现中文文字转语音的方法
Dec 24 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
Flask框架工厂函数用法实例分析
May 25 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
torch 中各种图像格式转换的实现方法
Dec 26 Python
python实现微信打飞机游戏
Mar 24 Python
用Python进行websocket接口测试
Oct 16 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 多维数组排序实现代码
2009/08/05 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
js的回调函数详解
2015/01/05 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
应届生会计求职信
2013/11/11 职场文书
运动会领导邀请函
2014/02/05 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
技术入股合作协议书
2014/10/07 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
一劳永逸彻底解决pip install慢的办法
2021/05/24 Python