项目初始化

来自CloudWiki
跳转至: 导航搜索

安装环境

安装django REST Framework:

pip3 install djangorestframework==3.6.3

安装markdown 和django-filter:

pip3 install markdown==2.6.8 django-filter==1.0.4


创建第一个项目

使用 django-admin 来创建 mxshop 项目:

django-admin startproject mxshop

创建完成后我们可以查看下项目的目录结构:

$ cd mxshop/
$ yum install tree
$ tree
.
|-- mxshop
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

目录说明:

   mxshop: 项目的容器。
   manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
   mxshop/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
   mxshop/settings.py: 该 Django 项目的设置/配置。
   mxshop/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
   mxshop/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

接下来我们进入 mxshop 目录输入以下命令,启动服务器:

python3 manage.py runserver 0.0.0.0:8000

0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。

在mxshop/settings.py中下面这一项添加允许访问的IP地址:

ALLOWED_HOSTS = ['10.0.0.30']

这里把Linux服务器的本机IP设上即可。

在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 10.0.0.30:8000) 及端口号,如果正常启动,输出结果如下:

Bd20-3-16.png

创建应用

python3 manage.py startapp users


注册应用

在 settings.py 中添加我们的应用名称users

# Application definition

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

配置数据库

安装mysql数据库

  • 创建数据库mxshop:

MariaDB [(none)]> create database mxshop CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Query OK, 1 row affected (0.01 sec)


安装python mysql模块

yum install mysql-devel

yum install python3-devel (注:直接安装pip3 install mysqlclient 时可能会遇到mysql_config:command not found,因此先把mysql-devel安一下)

pip3 install mysqlclient==1.3.10

pip3 install pillow==4.2.1

Pillow 是 PIL 的替代版本,PIL 软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。

Django中配置数据库

mysql中配置任何ip可访问数据库:

mysql -uroot -p

Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '000000' WITH GRANT OPTION;

mxshop/settings.py:

DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':"mxshop",
        'USER':'root',
        'PASSWORD':"000000",
        'HOST':"10.0.0.30",
        'OPTIONS':{ 'init_command': 'SET storage_engine=INNODB;' }
    }
}


项目整理

新建目录

新建目录apps extra_apps media db_tools:

root@localhost mxshop]# mkdir apps extra_apps media db_tools

[root@localhost mxshop]# ls

apps  db.sqlite3  db_tools  extra_apps  manage.py  media  mxshop  users

移动目录

将users 移动到apps下:

[root@localhost mxshop]# mv users apps/

[root@localhost mxshop]# ls apps/

users
  • apps: 存放项目的应用
  • extra_apps: 存放外部导入的应用
  • media:存放媒体文件
  • db_tools:存放操作数据库的脚本

设置项目搜索目录

mxshop.settings.py:

在BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))行下加入如下内容,以便更好的寻找apps、extra_apps两个目录中的文件。

import sys
。。。
sys.path.insert(0,BASE_DIR)
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))