原文链接:

http://www.jianshu.com/p/dbc4193b4f95

Django Model


  • 每一个Django Model都继承自django.db.models.Model
  • Model当中每一个属性attribute都代表一个database field
  • 通过Django Model API可以执行数据库的增删改查, 而不需要写一些数据库的查询语句

设置数据库

Django项目建成后, 默认设置了使用SQLite数据库, 在my_blog/my_blog/setting.py中可以查看和修改数据库设置:

DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}
}

还可以设置其他数据库, 如MySQL, PostgreSQL, 现在为了简单, 使用默认数据库设置

创建models


在my_blog/article/models.py下编写如下程序:

from django.db import models# Create your models here.
class Article(models.Model) :title = models.CharField(max_length = 100)  #博客题目category = models.CharField(max_length = 50, blank = True)  #博客标签date_time = models.DateTimeField(auto_now_add = True)  #博客日期content = models.TextField(blank = True, null = True)  #博客文章正文def __unicode__(self) :return self.titleclass Meta:  #按时间下降排序ordering = ['-date_time']

其中__unicode__(self) 函数Article对象要怎么表示自己, 一般系统默认使用<Article: Article object> 来表示对象, 通过这个函数可以告诉系统使用title字段来表示这个对象

  • CharField 用于存储字符串, max_length设置最大长度
  • TextField 用于存储大量文本
  • DateTimeField 用于存储时间, auto_now_add设置True表示自动设置对象增加时间

同步数据库


$ python manage.py migrate #命令行运行该命令

因为我们已经执行过该命令会出现如下提示

Operations to perform:Apply all migrations: admin, contenttypes, sessions, auth
Running migrations:No migrations to apply.Your models have changes that are not yet reflected in a migration, and so won't be applied.Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.

那么现在需要执行下面的命令

$ python manage.py makemigrations
#得到如下提示
Migrations for 'article':0001_initial.py:- Create model Article

现在重新运行以下命令

$ python manage.py migrate
#出现如下提示表示操作成功
Operations to perform:Apply all migrations: auth, sessions, admin, article, contenttypes
Running migrations:Applying article.0001_initial... OK

migrate命令按照app顺序建立或者更新数据库, 将models.py与数据库同步

Django Shell


现在我们进入Django中的交互式shell来进行数据库的增删改查等操作

$ python manage.py shell
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  5 2014, 20:42:22)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

这里进入Django的shell和python内置的shell是非常类似的

>>> from article.models import Article
>>> #create数据库增加操作
>>> Article.objects.create(title = 'Hello World', category = 'Python', content = '我们来做一个简单的数据库增加操作')
<Article: Article object>
>>> Article.objects.create(title = 'Django Blog学习', category = 'Python', content = 'Django简单博客教程')
<Article: Article object>>>> #all和get的数据库查看操作
>>> Article.objects.all()  #查看全部对象, 返回一个列表, 无对象返回空list
[<Article: Article object>, <Article: Article object>]
>>> Article.objects.get(id = 1)  #返回符合条件的对象
<Article: Article object>>>> #update数据库修改操作
>>> first = Article.objects.get(id = 1)  #获取id = 1的对象
>>> first.title
'Hello World'
>>> first.date_time
datetime.datetime(2014, 12, 26, 13, 56, 48, 727425, tzinfo=<UTC>)
>>> first.content
'我们来做一个简单的数据库增加操作'
>>> first.category
'Python'
>>> first.content = 'Hello World, How are you'
>>> first.content  #再次查看是否修改成功, 修改操作就是点语法
'Hello World, How are you'>>> #delete数据库删除操作
>>> first.delete()
>>> Article.objects.all()  #此时可以看到只有一个对象了, 另一个对象已经被成功删除
[<Article: Article object>]

当然还有更多的API, 可以查看官方文档

转载于:https://www.cnblogs.com/saolv/p/7044806.html

Django搭建简易博客教程(四)-Models相关推荐

  1. Django搭建简易博客

    Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...

  2. 10分钟利用django搭建一个博客

    以前老是听说ROR开发有多快多块,网上还有朋友为了证明这,专门制作了10分钟利用rails框架搭建一个简易博客的教程,最近学习django框架,觉得django给开发者的便捷也很多,心血来潮来写个10 ...

  3. Django搭建个人博客:用django-notifications实现消息通知

    凭借你勤奋的写作,拜读你文章的用户越来越多,他们的评论也分散在众多的文章之中.作为博主,读者的留言肯定是要都看的:而读者给你留言,自然也希望得到回复. 怎么将未读的留言呈现给正确的用户呢?总不能用户自 ...

  4. win2012 r2 iis php,Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建wordpress博客教程

    运行环境搭建教程 一.环境说明: 操作系统:Windows Server2012 R2 PHP版本:php 5.5.8 MySQL版本:MySQL5.6.15 二.相关软件下载: 1.PHP下载地址: ...

  5. gitee搭建个人博客教程

    gitee搭建个人博客教程 基础环境: gitee账号.git.node.js.npm.Typora(需要版本高一点) 个人博客 创建仓库 创建账号同名的仓库 获取账号名方式如下,去掉@号的部分. 创 ...

  6. 用python搭建个人博客过程_技术分享|利用Python Django一步步搭建个人博客(四)...

    您好,欢迎来到本期"利用Python Django一步步搭建个人博客"系列的第四部分.在上一篇教程中,我们学习了如何编写URL并将其映射到页面.在我们继续之前,我们需要做的一件事是 ...

  7. 2012 iis php mysql_Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建wordpress博客教程

    Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程 一.环境说明: 操作系统:Windows Server2012 R2 PHP版本:php 5.5.8 MySQ ...

  8. django项目转pyc_Python自动化运维系列:Django搭建小博客

    如何使用Django和Python怎么搭建一个小博客呢? 这是一个简单而困难的问题.简单的原因是,只要做过一次,基本上就能做到举一反三: 困难的原因是有没有用心和耐心去完成这个实验. 如果你成功了,那 ...

  9. 用django搭建个人博客(一)

    用django2.0搭建个人博客 博客网站的需求与规划 该个人博客为简单的入门示范网站,具有以下功能 项目名称为mblog 通过admin管理界面发帖.编辑以及删除贴文,且此界面支持markdown语 ...

最新文章

  1. 丹佛斯变频器模拟量速度输入_变频器与PLC是如何协同作战的?了解这几个控制方式很有必要...
  2. linux环境内核调试软件,Linux内核调试环境的搭建(使用qemu)
  3. C++代码在Sublime Text 3中编译和运行
  4. ftp服务器连接成功不显示端口,ftp被动联接端口是怎样确定的
  5. LeetCode 1812. 判断国际象棋棋盘中一个格子的颜色
  6. python3安装json库-python库json快速入门
  7. cgi php是什么意思,cgi,fastcgi,php-cgi,php-fpm 是什么
  8. mysql_query is deprecated_Function mysql_db_query() is deprecated 错误解决
  9. firefox插件使用感受
  10. ROS使用介绍——rosbag
  11. html表格文字方向改变,excel表格怎么改变文字方向
  12. 舍不得卸载的5款宝藏APP,每款都是精品中的精品
  13. 运用selenium库写淘宝抢购详解【3】(文末附带源码)
  14. 前端字体压缩(免费简单易上手)
  15. 结巴分词关键词相似度_中文文本相似度计算工具集
  16. 文献阅读----《病理语音的 S 变换特征及其提取方法》(笔记篇)
  17. 数据结构--数组和广义表
  18. 铁塔公司:目前北京已建好4400多座大型5G基站
  19. Java做天气预报app_天气预报APP(1)
  20. Arcsoft人脸识别算法_Camera1、Camera2、CameraX_API的使用

热门文章

  1. 调用 GetProcAddress 失败,在 ISAPI 筛选器 C:\Windows\Microsoft.NET...
  2. MySQl 8.0.13版本修改密码
  3. jQuery的顶级对象 $
  4. 老大,我就想加个索引,怎么就这么难?
  5. 聊聊 Spring Cloud Config
  6. 框架:DAO,Service,Controller,View层之间的逻辑关系
  7. 11.C++: cin、cin.get()、cin.getline()、getline()、gets()
  8. matlab调用kmeans_K_Means算法的MATLAB实现
  9. ajax提交后立刻刷新,Ajax提交表单页面刷新很快的解决方法
  10. Oracle大象,大象工程(石头剪刀布PK游戏)