<%inherit file="/base_center.html"/> <%block name="right_content"> <% import settings img_dir = 'dev_guide_qcloud' %>
${_(u'新手指南')}

- 1${_(u'安装环境 ')}
  1. ${_(u'本地开发环境搭建教程')} ${_(u'点击了解')} ;
  ${_(u'注意：应用测试、正式部署时会自动安装运行环境，并部署应用')}
- 2${_(u'创建应用')}
  1. ${_(u'点击左侧导航中的“我的应用 - 应用创建”;')}
  2. ${_(u'填写应用基本注册信息（应用 ID、代码仓库信息等）;')}
- 3${_(u'配置修改')}
  ${_(u'Python开发框架')}（2.0.0）：
  ${_(u'示例1：')}${_(u'点击下载Python开发框架(2.0.0)代码')} ${_(u'，将框架代码放到自己的代码仓库中，并按以下提示修改：')}
  1. ${_(u'config/__init__.py 文件: `APP_CODE`(应用ID) 和 `SECRET_KEY`(应用TOKEN)')} ${_(u'（蓝鲸智云开发者中心 -> 点击应用ID -> 基本信息 中可以查看到这两个值的信息）;')}
  2. ${_(u'config/__init__.py 文件: BK_URL 的值设置为: ')}`${paas_host}`;
  3. ${_(u'config/dev.py 文件：DATABASES（请创建本地开发数据库，并修改配置信息）;')}
  4. ${_(u'config/stag.py 文件：DATABASES（请创建测试环境数据库，并修改配置信息）;')}
  5. ${_(u'config/prod.py 文件：DATABASES（请创建正式环境数据库，并修改配置信息）。')}

  `${_(u'注意：')}`${_(u'测试环境 和 正式环境 的数据库需要对 AppServer 授权')} ( % if active_server_ips: `${active_server_ips}` % else: ${_(u'添加并激活 AppServer')} % endif )

  6. ${_(u'若需要使用 celery，请修改以下配置：')}(${_(u'点击下载 celery 开发指引')})
  ${_(u'config/default.py 文件：IS_USE_CELERY的值设置为: ')}`True`
  ${_(u'config/dev.py 文件：BROKER_URL（请创建本地开发的 celery消息队列，并修改配置信息，推荐使用 RabbitMQ）')}
  ${_(u'config/default.py 文件：CELERY_IMPORTS（添加celery任务模块）')}
  ${_(u'Python开发框架')}（1.0.0）：
  ${_(u'示例1：')} ${_(u'点击下载Python开发框架(1.0.0)代码')} ，${_(u'将框架代码放到自己的代码仓库中，并按以下提示修改：')}
  1. ${_(u'conf/default.py 文件：APP_ID 和 APP_TOKEN')} ${_(u'（蓝鲸智云开发者中心 -> 点击应用ID -> 基本信息 中可以查看到这两个值的信息）;')}
  2. ${_(u'conf/default.py 文件：BK_PAAS_HOST的值设置为: ')}`${paas_host}`;
  3. ${_(u'conf/settings_development.py 文件：DATABASES（请创建本地开发数据库，并修改配置信息）;')}
  4. ${_(u'conf/settings_testing.py 文件：DATABASES（请创建测试环境数据库，并修改配置信息）;')}
  5. ${_(u'conf/settings_production.py 文件：DATABASES（请创建正式环境数据库，并修改配置信息）。')}

  `${_(u'注意：')}`${_(u'测试环境 和 正式环境 的数据库需要对 AppServer 授权')} ( % if active_server_ips: `${active_server_ips}` % else: ${_(u'添加并激活 AppServer')} % endif )

  6. ${_(u'若需要使用 celery，请修改以下配置：')}(${_(u'点击下载 celery 开发指引')})
  ${_(u'conf/default.py 文件：IS_USE_CELERY的值设置为: ')}`True`
  ${_(u'conf/default.py 文件：BROKER_URL_DEV（请创建本地开发的 celery消息队列，并修改配置信息，推荐使用 RabbitMQ）')}
  ${_(u'conf/default.py 文件：CELERY_IMPORTS（添加celery任务模块）')}
  ${_(u'示例2：非蓝鲸智云应用框架开发的应用，请检查以下配置信息')}(${_(u'点击下载示例代码')}) ：
  1. ${_(u'settings.py文件中添加 APP_ID 和 APP_TOKEN')} ${_(u'（蓝鲸智云开发者中心 -> 点击应用ID -> 基本信息 中可以查看到这两个值的信息);')}
  2. ${_(u'在工程目录下添加 requirements.txt文件，并在 requirements.txt 中添加包依赖信息;')}
  3. ${_(u'请修改 mysite/settings.py 中的 DATABASES信息（请创建数据库，并修改配置信息）;')}
  4. ${_(u'请确认 uwsgi.py 文件在根目录下，也就是跟 manage.py 同级目录下。')}
  <%doc>
  Java（Spring-boot）：
  ${_(u'点击下载应用开发框架代码 ')} ，${_(u'将框架代码放到自己的代码仓库中，并按以下提示修改：')}
  1. ${_(u'配置文件修改')} (1) src/main/resources/application-development.properties: app.id 和 app.token ${_(u'（蓝鲸智云开发者中心 -> 点击应用ID -> 基本信息 中可以查看到这两个值的信息）;')} bk.paas.host （${_(u'蓝鲸智云开发者中心的域名：')}`${paas_host}`）; app.server.host ${_(u'（本地开发环境自行配置Hosts调试，主域名为与paas开发环境一样，子域名可以自行设置）;')} server.port ${_(u'（本地开发服务访问端口，默认8080，可以修改为指定的端口）;')} spring.datasource.url, spring.datasource.username 和 spring.datasource.password ${_(u'（先创建好本地数据库(create database)，并修改相应信息）;')} (2) pom.xml: pkg.app.id ${_(u'（填写你的应用ID，与上面的的app.id一样,否则会影响打包部署）;')} (3) src/main/resource/logback-spring.xml: ${_(u'这个文件为日志框架的入口配置文件，可以里面修改springProfile不同环境的配置日志级别')}
     (4) package/app.yml: ${_(u'这个文件是用于将本项目做成一个蓝鲸smart应用，需要按该文档上描述的正确填写，否则会导致Smart应用失败。')}
     (5) ${_(u'应用logo')}: ${_(u'将应用logo以当前应用的app_code命名成为 app_code.png，放package目录下，见bkjava.png这个默认的logo')}
     (6) bkjava/settings.xml: ${_(u'需要加入开发者的私有仓库，并配置到IDEA中的maven作为配置文件，保证能下载到Maven依赖')} (7) src/main/resources/application-testing.properties: spring.datasource.url, spring.datasource.username ${_(u'和')} spring.datasource.password ${_(u'（先创建好测试环境数据(create database)，并修改相应信息）;')} (8) src/main/resources/application-production.properties: spring.datasource.url, spring.datasource.username 和 spring.datasource.password ${_(u'（先创建好生产环境数据(create database)，并修改相应信息）。')}
  2. ${_(u'本地运行开发框架')} ${_(u'在IDE开发工具中 可以直接启动 BKWebApplication类。')} ${_(u'或者通过本地命令行执行 mvn spring-boot:run 启动。（需要本地安装maven）')} ${_(u'Maven下载地址')} http://maven.apache.org/surefire/download.cgi
  3. ${_(u'Java开发框架其他说明')} ${_(u'具体见工程里面的README.md 说明文档')}

  `${_(u'注意：')}`${_(u'测试环境 和 正式环境 的数据库需要对 AppServer 授权')} ( % if active_server_ips: `${active_server_ips}` % else: ${_(u'添加并激活 AppServer')} % endif )

- 4${_(u'开发项目')}
  ${_(u'Python（Django）版：')}
  ${_(u'Django 数据库操作')}

  ${_(u'蓝鲸智云应用使用Django自带的Migration来管理数据库。Migration是Django自带的同步models和数据库的数据迁移工具，Migration能够检测对models的更改并同步到数据库。')}

  ${_(u'Migration的使用')}（${_(u'查看详细使用')}）${_(u'方法如下:')}

  1. ${_(u'执行 manage.py migrate;')}
  2. ${_(u'执行 manage.py startapp yourappname、添加yourappname到config/default.py文件"INSTALLED_APPS"中;')}
  3. ${_(u'在Django的models.py中建立数据库模型后，执行manage.py makemigrations yourappname;')}
  4. ${_(u'执行manage.py migrate yourappname。')}

  ${_(u'注意： 必须按上面的步骤顺序执行，在执行第（1）步时最好不要加入自己的app，除非您保证自己的app已经有migration的initial文件。')}

  1. ${_(u'执行 manage.py migrate（作用是在数据库中创建Django自带的表，包括Django_migrations的表，用来存放数据库的变更历史）;')}
  2. ${_(u'执行 manage.py startapp yourappname、添加yourappname到config/settings_custom.py文件"INSTALLED_APPS"中;')}
  3. ${_(u'在Django的models.py中建立数据库模型后，执行manage.py makemigrations yourappname;')}
  4. ${_(u'步骤（3）执行成功后再执行manage.py migrate yourappname ，这时候数据库中已经建立了您定义的表;')}
  5. ${_(u'在工程中新增app，只需再次执行2—4的步骤即可; ')}
  6. ${_(u'更改models.py的内容，只需执行manage.py makemigrations yourappname和 manage.py migrate yourappname即可。')}

  ${_(u'注意： 必须按上面的步骤顺序执行，在执行第（1）步时最好不要加入自己的app，除非您保证自己的app已经有migration的initial文件。')}

  ${_(u'本地启动项目')}
  1. ${_(u'本地配置host：127.0.0.1 dev.xxx.xxx（注意：必须与PaaS平台主站在同一个一级域名）;')}
  2. ${_(u'执行python manage.py runserver 127.0.0.1:8000 启动项目;')}
  3. ${_(u'访问http://dev.xxx.xxx:8000/ 即可进行本地开发调试。')}
  <%doc>
  Java（Spring-boot）：
  ${_(u'请下载并参考')}${_(u'Java版开发框架')}${_(u'中README.md文件。')}
- 5${_(u'部署项目')}

  ${_(u'操作入口：“我的应用 -> 点击应用ID -> 应用部署” ')}

  1. ${_(u'测试部署：将应用代码在测试环境上进行部署，部署成功后就可以在测试环境中使用您的应用。')}
  2. ${_(u'正式部署：将应用代码在正式环境上进行部署，部署成功后就可以在正式环境中使用您的应用。')}
  3. ${_(u'下架操作：系统将应用代码从您选择的环境上撤销部署，届时用户将无法访问该应用，但是该应用的数据库依然保留。')}