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 相关文章推荐
SQLite3中文编码 Python的实现
Jan 11 Python
Python2随机数列生成器简单实例
Sep 04 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
pandas系列之DataFrame 行列数据筛选实例
Apr 12 Python
BP神经网络原理及Python实现代码
Dec 18 Python
Python中字符串与编码示例代码
May 20 Python
python 利用pyttsx3文字转语音过程详解
Sep 25 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 Python
Python turtle实现贪吃蛇游戏
Jun 18 Python
如何利用python实现列表嵌套字典取值
Jun 10 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
星际实力自我测试
2020/03/04 星际争霸
我的论坛源代码(八)
2006/10/09 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
超简单的jquery的AJAX用法
2010/05/10 Javascript
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
python解析模块(ConfigParser)使用方法
2013/12/10 Python
简单实现python收发邮件功能
2018/01/05 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
军训自我鉴定怎么写
2014/02/13 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
2014年环保局工作总结
2014/12/11 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
违纪检讨书
2015/01/27 职场文书
任命书标准格式
2015/03/02 职场文书
公司总经理岗位职责
2015/04/01 职场文书
计划生育工作总结2015
2015/04/03 职场文书
五年级作文之想象作文
2019/10/30 职场文书
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers