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使用pygame模块编写俄罗斯方块游戏的代码实例
Dec 08 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
python自动发送邮件脚本
Jun 20 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
python识别图像并提取文字的实现方法
Jun 28 Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 Python
pyecharts动态轨迹图的实现示例
Apr 17 Python
Python中的Cookie模块如何使用
Jun 04 Python
Python如何使用27行代码绘制星星图
Jul 20 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
Sep 23 Python
python实现简单猜单词游戏
Dec 24 Python
Python使用华为API为图像设置多个锚点标签
Apr 12 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
并发下常见的加锁及锁的PHP具体实现代码
2010/10/12 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
checkbox使用示例
2013/08/23 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
用Python解决计数原理问题的方法
2016/08/04 Python
Django内容增加富文本功能的实例
2017/10/17 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
python3安装crypto出错及解决方法
2019/07/30 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
python进阶之自定义可迭代的类
2019/08/20 Python
使用python实现画AR模型时序图
2019/11/20 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
幼儿园消防安全制度
2014/01/26 职场文书
初中生期末评语大全
2014/04/24 职场文书
公务员培的训心得体会
2014/09/01 职场文书
工作服管理制度范本
2015/08/06 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书