{ "toolchains": { "node_id": "toolchains-adef561f31da4077ade16720641aea78", "keywords": [], "children": [ { "Web实战初阶": { "node_id": "toolchains-87f33f689f5e4f05a65f344faa2022cb", "keywords": [], "children": [ { "工作空间创建": { "node_id": "toolchains-4d65520970f84d77ad072c7554dc0534", "keywords": [], "children": [ { "创建项目工作空间根目录": { "node_id": "toolchains-0c52dc8621ed42f6b587b99705ca744d", "keywords": [ "web", "工作空间" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "初始化git仓库": { "node_id": "toolchains-e5762965dec14f8a873428e4c04409d6", "keywords": [ "git" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "创建gitignore文件": { "node_id": "toolchains-02d8f669d1c745d599a2b321c6d15ca1", "keywords": [ "git", "gitignore" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "添加项目README.md文档": { "node_id": "toolchains-b10e540d16da4c6b9ce71128fe712750", "keywords": [ "readme" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "完成第一次本地仓库提交": { "node_id": "toolchains-9c268abdef7e4712828235a4696329c5", "keywords": [ "git", "commit" ], "children": [], "keywords_must": [], "keywords_forbid": [] } } ], "keywords_must": [], "keywords_forbid": [] } }, { "远程仓库管理": { "node_id": "toolchains-b97da20146254567b251066de9cfe81b", "keywords": [], "children": [ { "注册codechina账户": { "node_id": "toolchains-1bfc87efcfe04179bba64f6874688ca5", "keywords": [ "codechina", "gitcode" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "创建项目组织": { "node_id": "toolchains-4a090ef0913f41b9a25348b2a4c5498f", "keywords": [ "项目组织" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "创建远程仓库": { "node_id": "toolchains-d97f24c1f51e47e69e220e37975e49da", "keywords": [ "git", "remote" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "配置密钥": { "node_id": "toolchains-a7f5610f9a3242fa9ed3c9445b40d5a3", "keywords": [ "git", "key", "ssh" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "管理仓库权限": { "node_id": "toolchains-d110b9f5b6db482683cf117265eac2e0", "keywords": [ "git", "权限" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "将本地仓库关联并推送到远程仓库": { "node_id": "toolchains-ffc3c659453a48d19673ac82965d05e8", "keywords": [ "git", "remote", "push" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "项目成员和权限管理": { "node_id": "toolchains-3a1f4be17fcb4fc38907585dd297d48e", "keywords": [ "user", "permission" ], "children": [], "keywords_must": [], "keywords_forbid": [] } } ], "keywords_must": [], "keywords_forbid": [] } }, { "前端项目创建": { "node_id": "toolchains-6d6c305e18c84692bab703f455c7802c", "keywords": [], "children": [ { "安装nodejs环境": { "node_id": "toolchains-adb4004580bc476a85d513d0be3a5033", "keywords": [ "nodejs", "install" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "解决国外npm源下载速度与访问限制问题": { "node_id": "toolchains-9493364f64ac4e0abe44b544b90546a3", "keywords": [ "npm" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "在项目工作空间中创建前端项目目录": { "node_id": "toolchains-720ff92db7e94d0db637f7f3329ed92a", "keywords": [ "npm", "project" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "开发前准备工作(VUE版)": { "node_id": "toolchains-e997d39c64ea47e381d0f7097866abdf", "keywords": [ "vue" ], "children": [], "keywords_must": [], "keywords_forbid": [] } } ], "keywords_must": [], "keywords_forbid": [] } }, { "后端项目创建(python版)": { "node_id": "toolchains-c0dcb85913b44d94a5c2a931d1d2dac9", "keywords": [], "children": [ { "安装anaconda": { "node_id": "toolchains-b3950355b1cc40dfb66e37eb0c6523c8", "keywords": [ "python", "anaconda" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "在工作空间中创建后端项目目录": { "node_id": "toolchains-d117cf4df65c429cba528a1d9f3c3e27", "keywords": [ "python", "project" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "创建虚拟环境": { "node_id": "toolchains-37e699a027764e44817f3432debd449c", "keywords": [ "python", "venv", "virtualenv" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "项目开发前准备工作(flask版)": { "node_id": "toolchains-172e7ed9e81c4042bcb3e43de8712532", "keywords": [ "python", "flask" ], "children": [], "keywords_must": [], "keywords_forbid": [] } } ], "keywords_must": [], "keywords_forbid": [] } } ], "keywords_must": [], "keywords_forbid": [] } }, { "Web实战中阶": { "node_id": "toolchains-979177e2db87470cb604783444e47175", "keywords": [], "children": [ { "web前端项目实战(vue)": { "node_id": "toolchains-137915cd99754297934ea14d9dbf2bf6", "keywords": [], "children": [ { "使用vue脚手架创建项目": { "node_id": "toolchains-627cf848cba64a56b6b5a3cd550bfec7", "keywords": [ "vue" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "项目源码及目录结构说明": { "node_id": "toolchains-8b07ab0558ef451b9bdf111107034eba", "keywords": [ "vue", "project" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "创建第一个页面": { "node_id": "toolchains-5c9d4bcbe11942d3a869ab47df26c097", "keywords": [ "vue", "page" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "配置路由": { "node_id": "toolchains-e6cbb70c80394cda8c6b2abc0c779fc6", "keywords": [ "vue", "route" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "进行前端项目第一次版本提交": { "node_id": "toolchains-c7f2bf5d40ad4d0b955f7f107581223a", "keywords": [ "vue", "git", "commit" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "新建分支": { "node_id": "toolchains-eb45a452a6a04511968ef5b15c657a1d", "keywords": [ "git", "branch" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "抽离组件": { "node_id": "toolchains-0f9e83a3974e4db0a7a4a125a2214e4e", "keywords": [ "vue", "component" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "合并分支": { "node_id": "toolchains-772b173292fa46b3a5ce1209a22f076f", "keywords": [ "git", "merge" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "进一步抽离组件": { "node_id": "toolchains-7e6fd53fe3a84f31a8aed859e4e45083", "keywords": [ "vue", "component" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "分支冲突处理": { "node_id": "toolchains-666893ee200a4d6db5435abd09d8f47a", "keywords": [ "git", "merge", "conflict", "resolve" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "提取组件中的状态使用vuex进行状态管理": { "node_id": "toolchains-f24bcb8bea6b45368070c9b9f508606c", "keywords": [ "vue", "state", "vuex" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "模拟ajax请求": { "node_id": "toolchains-8b2b197bdbd944dea1918a4029343f0f", "keywords": [ "ajax", "http" ], "children": [], "keywords_must": [], "keywords_forbid": [] } } ], "keywords_must": [], "keywords_forbid": [] } }, { "web后端项目实战(flask)": { "node_id": "toolchains-75edd31443e24b5cb9812758aad8d417", "keywords": [], "children": [ { "创建flask项目": { "node_id": "toolchains-e1e9c87df6c64d69b44946f6f8bd38f0", "keywords": [ "python", "flask" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "配置并使用IDE(pycharm)": { "node_id": "toolchains-807a4d7ac2c543df8668d6be52dbdae3", "keywords": [ "python", "pycharm" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "创建项目配置文件": { "node_id": "toolchains-d2f1500609564ae8b7d9f33f1c03edf4", "keywords": [ "flask", "config", "settings" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "进行初次后端版本提交": { "node_id": "toolchains-d34786cfe2d34f1ebbcc381f7234feeb", "keywords": [ "git", "commit" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "设置数据库连接(mysql)": { "node_id": "toolchains-238848692f9e479c928f1a003acb8ffe", "keywords": [ "python", "mysql", "dbapi" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "使用sqlalchemy": { "node_id": "toolchains-f3a77b9ee7cd4687b8fdfa1a7e9ee70d", "keywords": [ "python", "sqlalchemy" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "配置数据模型": { "node_id": "toolchains-c17747cb6fb34e0782cd63103c26059f", "keywords": [ "flask", "python", "sqlalchemy", "model" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "使用数据迁移初始化数据库": { "node_id": "toolchains-64e0f059275740a6abc4808a35f3e2d2", "keywords": [ "python", "flask", "sqlalchemy", "migration" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "配置数据模型序列化工具": { "node_id": "toolchains-179bf9f789a24f83beccaecd621474e1", "keywords": [ "python", "flask", "sqlalchemy", "serialization" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "设置访问路由": { "node_id": "toolchains-9f6fdcbcafd3477897bf16d0dd2be262", "keywords": [ "python", "flask", "route" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "完成第一个接口返回json格式数据": { "node_id": "toolchains-286ed617cbac42a29dbd757361f1f0b3", "keywords": [ "python", "flask", "json" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "获取表单数据并将数据保存到数据库": { "node_id": "toolchains-93040f93301f41d080b62385eeb59d70", "keywords": [ "python", "flask", "form", "post", "database" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "使用装饰器设置中间件拦截请求": { "node_id": "toolchains-3a33244e3ab6490e9819a30d8cae5612", "keywords": [ "python", "flask", "decorator" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "连接redis": { "node_id": "toolchains-2f9cd0de2cc14dcb9ba4a1e76547b72b", "keywords": [ "python", "flask", "redis" ], "children": [], "keywords_must": [], "keywords_forbid": [] } }, { "使用令牌验证客户端身份": { "node_id": "toolchains-d1a69b26dab3472ca23bab5cf4dfd40a", "keywords": [ "python", "flask", "auth", "token" ], "children": [], "keywords_must": [], "keywords_forbid": [] } } ], "keywords_must": [], "keywords_forbid": [] } } ], "keywords_must": [], "keywords_forbid": [] } }, { "Web实战高阶": { "node_id": "toolchains-86e5c506fc34422491c049db4c45e39e", "keywords": [], "children": [], "keywords_must": [], "keywords_forbid": [] } } ], "keywords_must": [], "keywords_forbid": [] } }