Django博客系统开发01

环境搭建

开发环境

这里使用的是Ubuntu 16.04 LTS Server版本的系统,所以系统自带了Python3.5版本。但是系统默认使用的是Python2.7, 需要使用Python3时使用Python3命令。为了让开发环境相互隔离,我使用virtualenv创建独立的虚拟环境。

首先安装pip3

apt update
apt upgrade
apt install python3-pip

这里还需要安装一些依赖库以用于之后数据库的连接

apt install python-dev
apt install libmysqlclient-dev

(CentOS对应为python34-devel、mysql-devel)

然后安装虚拟环境virtualenv

pip install virtualenv

现在,我们到/var/www/目录下创建一个虚拟环境,并将虚拟环境所在目录命名为venv

cd /var/www/
virtualenv venv -p /usr/bin/python3 --no-site-packages

然后,激活这个虚拟环境

root@ubuntu:var/www# . venv/bin/activate
(venv) root@ubuntu:/var/www#

然后,安装django和mysqlclient用于连接mysql数据库(当然也可以使用pymysql这样的工具)

pip install django
pip install mysqlclient

现在,我们就有了开发所需要的软件环境,接下来开始构建项目。

创建项目

在/var/www/目录下执行一下命令创建我们的工程(hzsite)

django-admin startproject hzsite

创建后,工程的结构如下:

hzsite
    ├───manage.py
    └───hzsite
         settings.py
         urls.py
         wsgi.py
         __init__.py

数据库

博客的数据使用MySQL数据库存储,所以我们需要先新建一个数据库

mysql -u root -p
> create database hzsite;

配置项目

修改hzsite/settings.py文件中的以下配置

修改ALLOW_HOSTS

ALLOWED_HOSTS = ['*']

修改TIME_ZONE

TIME_ZONE = 'Asia/Shanghai'

修改数据库连接配置

# Database
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'hzsite',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

完成后,执行migrate命令生成数据库结构

python manage.py migrate

显示如下则成功

Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
 Applying contenttypes.0001_initial... OK
 Applying auth.0001_initial... OK
 Applying admin.0001_initial... OK
 Applying admin.0002_logentry_remove_auto_add... OK
 Applying contenttypes.0002_remove_content_type_name... OK
 Applying auth.0002_alter_permission_name_max_length... OK
 Applying auth.0003_alter_user_email_max_length... OK
 Applying auth.0004_alter_user_username_opts... OK
 Applying auth.0005_alter_user_last_login_null... OK
 Applying auth.0006_require_contenttypes_0002... OK
 Applying auth.0007_alter_validators_add_error_messages... OK
 Applying auth.0008_alter_user_username_max_length... OK
 Applying sessions.0001_initial... OK

完成后,使用以下命令在本机8080端口启动服务器

python manage.py runserver 0.0.0.0:8080

使用浏览器访问,出现It Works提示页面则配置成功

1

创建新应用

一个Django Project中可以包含多个Application。这里我们创建一个hzblog应用作为博客系统的主要App。

python manage.py startapp hzblog

创建完成后在hzsite/settings.py中注册这个app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'hzblog',
]

至此,基本的环境和博客系统的目录结构就有了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注