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数据结构之二叉树的遍历实例
Apr 29 Python
用C++封装MySQL的API的教程
May 06 Python
Python中条件判断语句的简单使用方法
Aug 21 Python
Python运算符重载详解及实例代码
Mar 07 Python
pycharm 取消默认的右击运行unittest的方法
Nov 29 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
python  logging日志打印过程解析
Oct 22 Python
Python下应用opencv 实现人脸检测功能
Oct 24 Python
python sorted方法和列表使用解析
Nov 18 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
python 异步async库的使用说明
May 04 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实现读取一个1G的文件大小
2013/08/24 PHP
php解析json数据实例
2014/08/19 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
django云端留言板实例详解
2019/07/22 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
Python中base64与xml取值结合问题
2019/12/22 Python
浅谈keras中loss与val_loss的关系
2020/06/22 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
pandas参数设置的实用小技巧
2020/08/23 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
行政秘书工作自我鉴定
2014/09/15 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
情感电台广播稿
2015/08/18 职场文书
Python初识逻辑与if语句及用法大全
2021/08/07 Python
MySQL分区表管理命令汇总
2022/03/21 MySQL
源码安装apache脚本部署过程详解
2022/09/23 Servers