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求crc32值的方法
Oct 05 Python
python中黄金分割法实现方法
May 06 Python
python图像常规操作
Nov 11 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
python3.5基于TCP实现文件传输
Mar 20 Python
python将三维数组展开成二维数组的实现
Nov 30 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
python如何进行矩阵运算
Jun 05 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 Python
90行Python代码开发个人云盘应用
Apr 20 Python
python机器学习实现oneR算法(以鸢尾data为例)
Mar 03 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+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
浅析js封装和作用域
2013/07/09 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
用Python给文本创立向量空间模型的教程
2015/04/23 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
python导入pandas具体步骤方法
2019/06/23 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Python API自动化框架总结
2019/11/12 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
李宁官方网店:中国运动品牌
2017/11/02 全球购物
怎么写好自荐信
2013/10/30 职场文书
优秀党员主要事迹
2014/01/19 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
恰同学少年观后感
2015/06/08 职场文书
2015入党个人自传范文
2015/06/26 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
vue如何清除浏览器历史栈
2022/05/25 Vue.js