一、准备工作
windows 7 系统
python 2.7 环境
已在windows配置好django环境,若还未配置好,请参照文章:http://blog.csdn.net/xiaoquantouer/article/details/51656520 进行配置
二、创建新项目
在工程目录下打开命令框,运行以下指令:
$ django-admin startproject my_blog
文件结构如下:
my_blog
├── manage.py
└── my_blog
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 directory, 5 files
三、创建app
建立一个article app
$ python manage.py startapp article
此时项目结构如下:
── article
│ ├── __init__.py
│ ├── admin.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
├── my_blog
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
并在my_blog/my_blog/setting.py下添加新建app
INSTALLED_APPS = [
'django.contrib.admin', # 默认添加后台管理功能
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'article', # 这里填写的是app的名称
]
四、应用migrations,激活模型
添加完app后,运行下列命令:
$ python manage.py migrate
五、设置数据库
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下编写如下程序:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
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) #博客文章正文
#python2使用__unicode__, python3使用__str__
def __unicode__(self) :
return self.title
class Meta: #按时间下降排序
ordering = ['-date_time']
其中__unicode__(self) 函数Article对象要怎么表示自己,一般系统默认用<Article: Article object> 来表示对象,通过这个函数可以告诉系统使用title字段来表示这个对象。
CharField 用于存储字符串,max_length设置最大长度
TextField 用于存储大量文本
DateTimeField 用于存储时间,auto_now_add设置True表示自动设置对象增加时间
七、同步数据库
$ python manage.py migrate #命令行运行该命令
因为已经执行过该命令了,因此会出现如下提示:
现在需要执行下面的命令:
$ python manage.py makemigrations
现在重新运行以下命令:
$ python manage.py migrate
出现如下提示表示操作成功:
migrate命令按照app顺序建立或者更新数据库,将models.py与数据库同步。
八、使用Shell进行数据库的增删改查
运行命令:
$ python manage.py 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>]
九、Admin后台管理界面
Django有一个优秀的特性,内置了Django admin后台管理界面,方便管理者进行添加和删除网站的内容。
设置Admin,可以在my_blog/my_blog/setting.py中查看
INSTALLED_APPS = (
'django.contrib.admin', #默认添加后台管理功能
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'article'
)
同时也可以添加进入后天管理的url,可以在my_blog/my_blog/urls.py中查看
urlpatterns = [
# url(r'^$', 'article.views.home'),
# url(r'^(?P<my_args>\d+)/$', 'article.views.detail', name='detail'),
url(r'^admin/', admin.site.urls), # 可以使用设置好的url进入网站后台
url(r'^$', 'article.views.home'),
]
十、创建超级用户
使用如下命令创建超级用户,可以登录后台,对数据库进行操作
$ python manage.py createsuperuser
输入用户名,邮箱,密码就能够创建一个超级用户,然后运行服务器,在浏览器中输入localhost:8000/admin
界面如下所示:
输入账号密码可以进入后台管理,
发现并没有数据库信息,不能操作数据库,于是在my_blog/article/admin.py中加入代码:
from django.contrib import admin
from article.models import Article
# Register your models here.
admin.site.register(Article)
保存后,刷新下页面,如下所示:
使用第三方插件美化后台界面,例如使用django-admin-bootstrap美化后台管理界面
安装插件
$ pip install bootstrap-admin
配置:
在my_blog/my_blog/setting.py中修改INSTALLED_APPS
INSTALLED_APPS = (
'bootstrap_admin', #一定要放在`django.contrib.admin`前面
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'article',
)
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
'django.core.context_processors.request',
)
BOOTSTRAP_ADMIN_SIDEBAR_MENU = True
INSTALLED_APPS = (
'bootstrap_admin', #一定要放在`django.contrib.admin`前面
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'article',
)
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
'django.core.context_processors.request',
)
BOOTSTRAP_ADMIN_SIDEBAR_MENU = True