Django搭建简易博客教程(四)-Models
原文链接:
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相关推荐
- Django搭建简易博客
Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...
- 10分钟利用django搭建一个博客
以前老是听说ROR开发有多快多块,网上还有朋友为了证明这,专门制作了10分钟利用rails框架搭建一个简易博客的教程,最近学习django框架,觉得django给开发者的便捷也很多,心血来潮来写个10 ...
- Django搭建个人博客:用django-notifications实现消息通知
凭借你勤奋的写作,拜读你文章的用户越来越多,他们的评论也分散在众多的文章之中.作为博主,读者的留言肯定是要都看的:而读者给你留言,自然也希望得到回复. 怎么将未读的留言呈现给正确的用户呢?总不能用户自 ...
- 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下载地址: ...
- gitee搭建个人博客教程
gitee搭建个人博客教程 基础环境: gitee账号.git.node.js.npm.Typora(需要版本高一点) 个人博客 创建仓库 创建账号同名的仓库 获取账号名方式如下,去掉@号的部分. 创 ...
- 用python搭建个人博客过程_技术分享|利用Python Django一步步搭建个人博客(四)...
您好,欢迎来到本期"利用Python Django一步步搭建个人博客"系列的第四部分.在上一篇教程中,我们学习了如何编写URL并将其映射到页面.在我们继续之前,我们需要做的一件事是 ...
- 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 ...
- django项目转pyc_Python自动化运维系列:Django搭建小博客
如何使用Django和Python怎么搭建一个小博客呢? 这是一个简单而困难的问题.简单的原因是,只要做过一次,基本上就能做到举一反三: 困难的原因是有没有用心和耐心去完成这个实验. 如果你成功了,那 ...
- 用django搭建个人博客(一)
用django2.0搭建个人博客 博客网站的需求与规划 该个人博客为简单的入门示范网站,具有以下功能 项目名称为mblog 通过admin管理界面发帖.编辑以及删除贴文,且此界面支持markdown语 ...
最新文章
- 丹佛斯变频器模拟量速度输入_变频器与PLC是如何协同作战的?了解这几个控制方式很有必要...
- linux环境内核调试软件,Linux内核调试环境的搭建(使用qemu)
- C++代码在Sublime Text 3中编译和运行
- ftp服务器连接成功不显示端口,ftp被动联接端口是怎样确定的
- LeetCode 1812. 判断国际象棋棋盘中一个格子的颜色
- python3安装json库-python库json快速入门
- cgi php是什么意思,cgi,fastcgi,php-cgi,php-fpm 是什么
- mysql_query is deprecated_Function mysql_db_query() is deprecated 错误解决
- firefox插件使用感受
- ROS使用介绍——rosbag
- html表格文字方向改变,excel表格怎么改变文字方向
- 舍不得卸载的5款宝藏APP,每款都是精品中的精品
- 运用selenium库写淘宝抢购详解【3】(文末附带源码)
- 前端字体压缩(免费简单易上手)
- 结巴分词关键词相似度_中文文本相似度计算工具集
- 文献阅读----《病理语音的 S 变换特征及其提取方法》(笔记篇)
- 数据结构--数组和广义表
- 铁塔公司:目前北京已建好4400多座大型5G基站
- Java做天气预报app_天气预报APP(1)
- Arcsoft人脸识别算法_Camera1、Camera2、CameraX_API的使用
热门文章
- 调用 GetProcAddress 失败,在 ISAPI 筛选器 C:\Windows\Microsoft.NET...
- MySQl 8.0.13版本修改密码
- jQuery的顶级对象 $
- 老大,我就想加个索引,怎么就这么难?
- 聊聊 Spring Cloud Config
- 框架:DAO,Service,Controller,View层之间的逻辑关系
- 11.C++: cin、cin.get()、cin.getline()、getline()、gets()
- matlab调用kmeans_K_Means算法的MATLAB实现
- ajax提交后立刻刷新,Ajax提交表单页面刷新很快的解决方法
- Oracle大象,大象工程(石头剪刀布PK游戏)