前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django学习数据库操作(10)

Django学习数据库操作(10)

作者头像
萌海无涯
发布2019-09-09 17:00:52
5770
发布2019-09-09 17:00:52
举报
文章被收录于专栏:萌海无涯萌海无涯

我们学习 HTML 文件的数据返回,替换其中的内容我们是固定的格式,现在我们学习从数据库的操作,从而能让我们的页面展现更多的内容。

如果不了解数据库的话,暂时就当做一个Excel 表格就好了吧..

数据库配置:

mysite/settings.py 。这是个包含了 Django 项目设置的 Python 模块。

通常,这个配置文件使用 SQLite 作为默认数据库。如果你不熟悉数据库,或者只是想尝试下 Django,这是最简单的选择。Python 内置 SQLite,所以你无需安装额外东西来使用它。当你开始一个真正的项目时,你可能更倾向使用一个更具扩展性的数据库,例如 PostgreSQL,避免中途切换数据库这个令人头疼的问题。

未做更改使用的是sqlite

使用其他数据库我们放在后面说。


我们还是用前面的项目 myblog 。

在 settings.py 文件中 INSTALLED_APP 列表里面添加我们的 blog 应用。

数据库操作的文件是 blog/models.py

Django 只需要只需要定义数据模型,然后其它的杂七杂八代码你都不用关心,它们会自动从模型生成。

我们新建一个 类 ,这个类就是数据库中的一个表,这个类一定要继承 models.Model

表里面有字段类型,我们根据需要设计:

代码语言:javascript
复制
class Article(models.Model):
    """ 博客模型
    建立类需要继承 models.Model
    一个 id 字段会被自动添加,但是这种行为可以被改写。
    Django 依据你在 配置文件 中指定的数据库后端生成对应的 SQL 语句。
    """

    # 每个字段都被指定为一个类属性,并且每个属性映射为一个数据库列。
    # charfield是字符串类型  max_length 设置最大值 参数第一个是备注
    title = models.CharField('博客题目', max_length = 100)  #博客题目
    category = models.CharField('博客分类', max_length = 50)  #博客分类 可为空
    content = models.TextField('文章正文', blank = True, null = True)  #博客文章正文

添加完后,在终端输入 :

代码语言:javascript
复制
python manage.py migrate

这个 migrate 命令检查 INSTALLED_APPS 设置,为其中的每个应用创建需要的数据表,至于具体会创建什么,这取决于你的 mysite/settings.py 设置文件和每个应用的数据库迁移文件(我们稍后会介绍这个)。这个命令所执行的每个迁移操作都会在终端中显示出来。

然后我们输入:

代码语言:javascript
复制
python manage.py makemigrations polls

通过运行 makemigrations 命令,Django 会检测你对模型文件的修改(在这种情况下,你已经取得了新的),并且把修改的部分储存为一次 迁移。

迁移是 Django 对于模型定义(也就是你的数据库结构)的变化的储存形式 - 没那么玄乎,它们其实也只是一些你磁盘上的文件。如果你想的话,你可以阅读一下你模型的迁移数据,它被储存在 blog/migrations/0001_initial.py 里。别担心,你不需要每次都阅读迁移文件,但是它们被设计成人类可读的形式,这是为了便于你手动修改它们。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萌海无涯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据库配置:
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档