一些简单的介绍


一、Django框架简介 Django是一款基于MTV的web后端框架,属于重量级的web框架,其模板引擎使用的是Jinja2。Django一共分为三层:(1) Models层 :也称模型层。模型层的主要作用是为ORM框架服务,通过wev框架实现对数据库的操作。(2) Templates层 :也称模板层。主要用于将结果展示给用户,具体表现为HTML页面。(3) Views层 :也称视图层。是MTV框架的核心部分,通常由视图函数组成。

微服务代码结构 微服务 django_mysql


二、Nginx+uwsgi工作原理  

微服务代码结构 微服务 django_mysql_02


    废话不多说直接上图,可以看出Nginx会接收客户端请求,如果是静态文件请求,则会到相应路径直接请求静态文件;动态请求则通过配置文件,将请求传递给uwsgi;uwsgi将接收到的包进行处理,并转发给wsgi。 返回数据则是一个逆向的过程。

前期准备


一、安装数据库 (1)安装

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev


终端输入上述命令,安装MySQL的客户端和服务端。 (2)查看配置 安装完成后查看/etc/mysql/debian.cnf文件的默认用户名和密码。 (3)登录和修改

mysql -u 用户名 -p 密码


使用命令登录mysql,修改mysql数据库内的用户名和密码信息。 (4)重启

sudo service mysql restart


mysql -u 新用户名 -p 新密码 二、安装Nginx

sudo apt-get install nginx


一条命令完事儿! 使用命令 nginx -t 可以查看Nginx的运行状态,如果出现:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


说明Nginx运行成功,此时查看当前主机的ip地址,并在浏览器输入,出现以下页面说明成功:

微服务代码结构 微服务 django_用户名_03


三、安装uwsgi

sudo apt-get install python-dev
sudo pip install uwsgi


两条命令轻松完成! 四、安装虚拟环境

sudo pip install virtualenv


五、安装相关模块

sudo pip install django


...... 需要什么模块自行选择安装 到这里,部署的前期准备工作已经差不多了。 开始部署 一、建立虚拟环境 (1)首先进入要存放网站的目录,并建立虚拟环境:

cd /var/www
virtualenv web



微服务代码结构 微服务 django_nginx_04


(2)进入虚拟环境


source web/bin/activate


进入虚拟环境的根目录 后,将代码上传到虚拟环境根目录,解压后使用Django命令启动项目, 设置域名和端口为0.0.0.0:8000 ,会发现项目已经正常运行,并且可以通过IP地址正常访问:

微服务代码结构 微服务 django_微服务代码结构_05

微服务代码结构 微服务 django_django orm原理_06


二、配置Nginx和uwsgi (1)配置nginx.conf 进入目录 /etc/nginx 找到nginx.conf ,并添加以下内容

server {
        listen 80;   # 这个端口用来监听浏览器的请求
        server_name 0.0.0.0;  # 填域名或IP地址
        charset UTF-8;

        access_log /var/log/nginx/MyProject_access.log;  # 日志文件。
        error_log /var/log/nginx/MyProject_error.log;
        client_max_body_size 75M;

        location / {
        include /etc/nginx/uwsgi_params;   # 使用uwsgi服务器
        uwsgi_pass 127.0.0.1:8000;   # 把浏览器发来的请求转发到8000端口
        }

        location /static/{   # 处理静态文件
        alias /var/www/web/MyWeb/static; # 项目静态文件的绝对路径          
        }
}


(2)配置ini文件 进入nginx根目录,创建web.ini文件 ,文件内容如下:

[uwsgi]
chdir =/var/www/web/MyWeb  # 网页项目的目录
module =MyWeb.wsgi
home=/var/www/web    # 指定虚拟环境目录
master =true
processes=4
socket =127.0.0.1:8000
chmod-socket=666
vacuum=true


(3)启动

service nginx reload
uwsgi --ini web.ini


重启nginx服务并使用uwsgi启动刚刚配置好的ini文件 ,此时即可通过配置的域名或者ip地址进行访问了! 三、其他问题 (1)数据库问题 如果要将本地的数据库迁移到服务器上,可以使用如下命令:

# 打包指定数据库
mysqldump -u用户名 -p源库名 > xxx.sql
# 打包所有数据库
mysqldump -u用户名 -p密码 --all-databases > xxx.sql
# 恢复指定数据库
mysqldump -u用户名 -p密码 --one-databases # 恢复所有数据库(这个要先登入数据库)
source xxx.sql


(2)静态文件收集问题 首先在setting.py文件设置好静态文件目录,并在项目根目录建立static文件夹

STATICFILES_DIRS=(
    os.path.join(BASE_DIR, 'static'),
)

STATIC_ROOT=os.path.join(BASE_DIR, 'static')



然后使用命令进行静态文件收集:

python manage.py collectstatic