由于公司的后端用的是python,他一步一步的“侵蚀”了我。这踏马的也太牛了。。。所以,面临毕业设计的我果断选择了用 python 代替了 nodejs 作为我的小项目的后端语言了。
要撸起来,得先把环境搭搭好。
在这里,我将项目源码放在服务器(腾讯云——Ubuntu)上,代码的编写为 win10——pyCharm 环境。所以,python的安装需要在本机win10
和服务器Ubuntu
上分别搭建python。
在python官网下载并安装python3.6,记得将 python
加到系统 path
。并注意安装 pip
戳我下载:https://www.python.org/downloads/
由于Ubuntu18.04自带python3.6,所以这里只需要安装 pip
。
输入下方的命令:
sudo apt install python3-pip
接下来在服务器上安装 python 虚拟机。关于python虚拟机:
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
安装好之后,在 root 文件夹创建一个私有文件夹
cd /root
mkdir .virtualenvs
创建好文件夹之后,将下方代码填到root
目录下的 .bashrc
文件的最底部。
vim .bashrc #vim进入文件,下方为需要插入的代码
export WORKON_HOME=/root/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
在服务器上安装 nginx
sudo apt install nginx
nginx安装好之后就会在 /var
文件夹之下创建一个 www
文件夹,如果没有就去看看其他的文件夹下有没有这个www
,比如说 /usr/share/nginx
里看看。这个文件夹就作为了我们项目放置的文件跟目录。
pyCharm
创建一个django
项目。 注意命名,以及添加一个app
。
在创建中, pycharm
会帮你弄好一个干净的 python 虚拟环境,以及干净的 django
代码。
使用 pip freeze 导出依赖库配置文件:
pip freeze > requirements.txt
# 这种方式推荐配合 virtualenv ,否则会把整个环境中的包都列出来。
这个文件有着在服务器上搭建和本机相同环境的作用。
pycharm
的代码自动上传 在上图 configuration
中进行服务器的相关配置。
将本地目录与服务器目录进行映射。
保存配置后,回到 tools
里将 Automatic Upload
打勾。这样就做到每一次保存代码,便会将文件上传至服务器的相对应目录当中。
配置好之后的第一次需手动上传代码到服务器上。
在 IDE 目录列表里,选中文件或文件夹,按键盘 ctrl + shift + alt + x
,出现下图服务器列表。
点击 first
这个服务器名就好了。
需要注意的地方:
venv library root
这个文件夹不需要上传。其他都上传。
mkvirtualenv -a /var/www/firstdjango --python=python3.6 firstdjango
# 注意python版本 和 项目文件夹名
cd /var/www/firstdjango
pip install -r requirements.txt # 安装项目依赖
chmod a+x ./manage.py # 给 manager.py 权限
./manage.py runserver # 让项目跑起来。。。
# 最后run的时候可能会报错,有可能是换行符的问题,在 pycharm 右下角修改给换行符为 '/n' 就好了
此时,访问 http://你的域名:8000
看到小火箭在飞的话,那么你已经完成基础配置了,nice!!!
在本地项目中新建文件,nginx.conf
。
在 nginx.conf
输入以下代码:
server {
listen 80;
root /var/www/firstdjango;
# Add index.php to the list if you are using PHP
index index.html index.htm ;
server_name www.abc.com;
location / {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PATCH,PUT';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
proxy_set_header HTTP_X_FORWARDED_PROTO https;
proxy_pass http://127.0.0.1:8000;
client_max_body_size 2m;
include proxy_params;
}
}
保存上传文件至服务器。
回到服务器上,进行一些骚操作。
ln -s /var/www/firstdjango/firstdjango/nginx.conf /etc/nginx/sites-enabled/firstdjango
软链接,将项目中的 nginx.conf
与 服务器 nginx
做关联。
tail /var/log/nginx/error.log # 监控错误日志
systemctl reload nginx # 重启 nginx 服务
okok,第一次的django搭建,在大神的指点下完成。本来是想在 win10 ubuntu的子系统里搭的,再搭配 ngrok 把服务器代理到本地,然后美滋滋开发,后来发现,win10 的 ubuntu 算是个阉割版的吧,好多东西都跑不起来。可能是我垃圾吧。。。。哈哈哈哈哈。。。。
反正服务器空着也是空着,折腾起来。。。
我擦,最后的最后,这应该放前面的,Ubuntu开启root登陆。
sudo vim /etc/ssh/sshd_config
Port 22
#AddressFamily any
AddressFamily inet
ListenAddress 0.0.0.0
#ListenAddress ::
PermitRootLogin yes
sudo service ssh restart
愉快玩耍。。。