09-day05-Django离线脚本(使用离线脚本创建价格策略)


目录
  • 一、Django离线脚本
    • 1.1、什么是离线脚本?
    • 1.2、例举数据库插入一条数据的离线脚本
    • 二、使用离线脚本创建价格策略

一、Django离线脚本

1.1、什么是离线脚本?

  • 简单理解即是不需要运行django,就像我们平时运行一个简单的py文件一样,但是却可以完成类似运行了django才可以完成的工作;

1.2、例举数据库插入一条数据的离线脚本

  • 第一步 :离线配置直接写成了一个base文件,方便了以后直接导入复用;
# base.py
"""
初始化动态表,在动态表中添加一些数据,方便操作
"""
"""
初始化动态表,在动态表中添加一些数据,方便操作
"""
import os
import sys
import django
# 获取项目的根目录
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_dir)   # 添加到系统环境变量
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Bug_manager.settings")   
# 加载项目的配置文件,Sass_bug_mage是项目
django.setup()  # 启动django
# 上面必须写
  • 第二步 :编写离线脚本
# 离线脚本创建价格策略【免费版】
from scripts import base#   导入base配置文件
import os
import sys
import django
# 获取项目的根目录
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_dir)   # 添加到系统环境变量
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "demos.settings")   # 加载项目的配置文件,demos是项目
django.setup()  # 启动django
# 上面必须写
from web import models
def run_init_():
    exists = models.PricePolicy.objects.filter(category=1, title='个人免费版').exists()
    if not exists:
        models.PricePolicy.objects.create(
            category=1,
            title='个人免费版',
            price=0,
            project_num=3,
            project_member=2,
            project_space=20,
            per_file_size=5
        )
if __name__ == '__main__':
    run_init_()

二、使用离线脚本创建价格策略

(Bug_manager) daizhe@daizhedeMacBook-Pro Bug_manager % cat scripts/base.py 
# -*- coding:utf-8 -*-
import os
import sys
import django

base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_dir)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Bug_manager.settings")
django.setup()  # os.environ['DJANGO_SETTINGS_MODULE']
(Bug_manager) daizhe@daizhedeMacBook-Pro Bug_manager % cat scripts/init_price_policy.py 

# -*- coding:utf-8 -*-
import base
from web import models


def run():
    exists = models.PricePolicy.objects.filter(category=1, title="个人免费版").exists()
    if not exists:
        models.PricePolicy.objects.create(
            category=1,
            title="个人免费版",
            price=0,
            project_num=3,
            project_member=2,
            project_space=20,
            per_file_size=5
        )


if __name__ == '__main__':
    run()

相关