项目初始化
目录
安装环境
安装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) 及端口号,如果正常启动,输出结果如下:
创建应用
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'))