“项目初始化”的版本间的差异
(→安装python mysql模块) |
|||
(未显示2个用户的14个中间版本) | |||
第1行: | 第1行: | ||
==安装环境== | ==安装环境== | ||
− | |||
− | |||
− | |||
安装django REST Framework: | 安装django REST Framework: | ||
− | pip3 install djangorestframework==3.6.3 | + | pip3 install djangorestframework==3.6.3 |
安装markdown 和django-filter: | 安装markdown 和django-filter: | ||
− | pip3 install markdown==2.6.8 django-filter==1.0.4 | + | pip3 install markdown==2.6.8 django-filter==1.0.4 |
+ | |||
+ | |||
+ | ==创建第一个项目== | ||
+ | |||
+ | |||
+ | 使用 django-admin 来创建 mxshop 项目: | ||
+ | |||
+ | django-admin startproject mxshop | ||
+ | |||
+ | 创建完成后我们可以查看下项目的目录结构: | ||
+ | |||
+ | <nowiki>$ cd mxshop/ | ||
+ | $ yum install tree | ||
+ | $ tree | ||
+ | . | ||
+ | |-- mxshop | ||
+ | | |-- __init__.py | ||
+ | | |-- settings.py | ||
+ | | |-- urls.py | ||
+ | | `-- wsgi.py | ||
+ | `-- manage.py</nowiki> | ||
+ | |||
+ | 目录说明: | ||
+ | |||
+ | 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|700px]] | ||
+ | |||
+ | ==创建应用== | ||
+ | python3 manage.py startapp users | ||
+ | |||
+ | |||
+ | ===注册应用=== | ||
+ | 在 settings.py 中添加我们的应用名称users | ||
+ | |||
+ | <nowiki># Application definition | ||
+ | |||
+ | INSTALLED_APPS = [ | ||
+ | 'django.contrib.admin', | ||
+ | 'django.contrib.auth', | ||
+ | 'django.contrib.contenttypes', | ||
+ | 'django.contrib.sessions', | ||
+ | 'django.contrib.messages', | ||
+ | 'django.contrib.staticfiles', | ||
+ | 'users', | ||
+ | ]</nowiki> | ||
+ | |||
+ | ==配置数据库== | ||
+ | ===安装mysql数据库=== | ||
+ | *[[Centos7 安装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 | ||
+ | |||
+ | <nowiki>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;</nowiki> | ||
+ | |||
+ | mxshop/settings.py: | ||
+ | |||
+ | <nowiki> | ||
+ | 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;' } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </nowiki> | ||
+ | |||
+ | ==项目整理== | ||
+ | ===新建目录=== | ||
+ | 新建目录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两个目录中的文件。 | ||
+ | <nowiki> | ||
+ | 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')) | ||
+ | </nowiki> |
2020年12月12日 (六) 05:12的最新版本
目录
安装环境
安装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'))