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()