python-django2.1

309 阅读3分钟

前言

学习python之django框架, 算是初次接触python框架,特写篇笔记来记录学习的重要点,以及疑问点,方便后续学习查看

安装导出源

pip install -i https://pypi.doubanio.com/simple/ Django -i pypi.doubanio.com/simple/ # -i指定使用源 (-i == --index-url)

导出依赖

pip freeze > requirements.txt

安装依赖

pip install -r requriements.txt pip install -i https://pypi.doubanio.com/simple/ -r requirements.txt (豆瓣源安装)

虚拟环境

安装虚拟环境 pip install virtualenvwrapper-win 创建虚拟环境 mkvirtualenv myproject 进入虚拟环境 workon myproject

安装django

通过pip安装

pip install Django

验证

若要验证 Django 是否能被 Python 识别,可以在 shell 中输入 python。 然后在 Python 提示符下 import django; print(django.get_version()) 或者 python -m django --version

新建项目

创建项目

在需要创建项目的文件夹下 django-admin startproject mysite

启动简易服务器

用于本地开发环境django的简易服务器,默认端口是8000,你也可自定义端口,启动成功后会出现django欢迎页面 python manage.py runserver 8000

创建应用

python manage.py startapp polls

django的项目与应用关系

应用是专门做某件事的应用程序--比如博客系统,项目是一个网站使用的配置和应用的集合。项目可以包含很多应用,应用可以被很多个项目使用

初始化应用数据库表

  1. 安装python连接mysql库 pip install mysqlclient
  2. 在不同环境下先确保激活模型 python manage.py makemigrations polls
  3. )模型导入数据库(相当于创建表)python manage.py migrate

设计模型

初始化数据

python manage.py loaddata ./apps/user/user.json

[
  {
    "model": "user.Group",
    "pk": 1,
    "fields": {
      "group_type": "超级管理员",
      "sort_time": "2019-10-24 00:00:00",
      "created": "2019-10-24 00:00:00",
      "updated": "2019-10-24 00:00:00"
    }
  },
  {
    "model": "user.User",
    "pk": 1,
    "fields": {
      "username": "webchenhan@163.com",
      "password": "123456",
      "group": 1,
      "is_superuser": "1",
      "is_admin": "1",
      "sort_time": "2019-10-24 00:00:00",
      "created": "2019-10-24 00:00:00",
      "updated": "2019-10-24 00:00:00"
    }
  }
]

django项目部署,迁移

再部署后我们需要达到的效果是,

  1. django项目有独立运行的虚拟环境
  2. 项目后台运行,xshell关闭项目继续运行
  3. 能从外网访问接口请求数据

环境准备

django项目配置的修改,打开settings.py文件,找到DEBUGALLWE_HOSTS,将他们设置如下值

settings.py
DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

导出项目所需的依赖,在manange.py同级目录下

pip freeze > requirements.txt

在我们的服务上新增目录结构,我是放在

/root/sites/
        web.com/
            env/
            MxShop/

进入web.com文件夹下,我们来创建虚拟环境,并且检查是否安装成功,如没有安装virtualenv,先安装 pip3 install virtualenv

virtualenv --python=python3 env
ls
env

进入虚拟环境

env/bin/activate

进入web.com文件夹下,把我们的django源码上传至此文件夹下,安装依赖

cd MxShop
pip install -r requirements.txt

生成数据库

python manage.py migrate

在manage.py同级目录下新建start.sh stop.sh文件用于后台启动和关闭项目,避免关闭xshell项目服务就关闭

start.sh内容如下
ps -aux | grep python3|xargs kill -9
nohup python3 manage.py runserver 0.0.0.0:8000 >>log_app.out>&1 &

stop.sh内容如下
ps -aux | grep python3|xargs kill -9

执行start.sh文件启动项目 start.sh 配置nginx,由于项目只用与谢接口api,所以配置如下:

location /api/ {
    proxy_pass http://127.0.0.1:8000;
}
location /admin/ {
  proxy_pass http://127.0.0.1:8000;
}

至此简单项目部署完成