Django搭建简易博客教程(一)

一、准备工作


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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值