Django快速搭建博客
准备工作:
1.Python
2.Django
3.Git
安装Python:
官网下载
安装Django:
#安装最新版本的Django $ pip install django #或者指定安装版本 pip install -v django==1.7.1
现在正式开始创建一个名为my_blog
的Django项目:
$ django-admin.py startproject my_blog
建立Django app(article):
$ python manage.py startapp article
到目前为止的项目结构如下:
── article │ ├── __init__.py │ ├── admin.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py ├── db.sqlite3 ├── manage.py ├── my_blog ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-34.pyc │ ├── settings.cpython-34.pyc │ ├── urls.cpython-34.pyc │ └── wsgi.cpython-34.pyc ├── settings.py ├── urls.py └── wsgi.py
并在my_blog/my_blog/setting.py下添加新建app:
INSTALLED_APPS = ( ... 'article', #这里填写的是app的名称 )
运行程序!启动Django中的开发服务器:
$ python manage.py runserver
如果出现以上界面则说明运行成功。
命令总结
python manage.py <command> [options] #Django Command python manange.py -h帮助文档 django-admin.py startproject my_blog #创建项目 python manage.py startapp article #创建app
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) #博客文章正文 #python2使用__unicode__, python3使用__str__ def __str__(self) : return self.title class Meta: #按时间下降排序 ordering = ['-date_time']
其中__str__(self)
函数Article对象要怎么表示自己, 一般系统默认使用<Article: Article object>
来表示对象, 通过这个函数可以告诉系统使用title字段来表示这个对象
CharField
用于存储字符串, max_length设置最大长度TextField
用于存储大量文本DateTimeField
用于存储时间, auto_now_add设置True表示自动设置对象增加时间