# python_web_learn2020spring **Repository Path**: michael-tangsheng/python_web_learn2020spring ## Basic Information - **Project Name**: python_web_learn2020spring - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2022-10-04 - **Last Updated**: 2022-10-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # python_web_learn2020spring ## 0 课程介绍 * web原理 * Python作为Web系统**后端**的开发技术 * 当然还有些必要的**前端**技术 * 网站的运营管理 * 服务器、部署、备案、SEO等 ## 1 第一阶段 ### week1 HTTP理解 ### week2 HTML CSS Javascript实践 ### Week3 使用基础的socket来开发网站 ## 2 第二阶段 ### 2.1 承上 Python web课程的第一小阶段结束,我们花了三周课程把web开发的基础的、周边的一些内容以及原理进行了介绍,包括HTTP原理、HTML+CSS+JAVASCRIPT、Python与网络协议、Python模拟开发网站;内容比较杂,而且有些是讲得个人经验;大家没太明白没关系,在接下来的Django实验过程中,会深化理解,希望没事回来看看第一阶段我们写的程序和视频。 ### 2.2 启下 接下来我们会花大概3到4周的时间来讲一下,对Django这个Web开发框架进行入门,学习目标是大家能够使用这个框架进行简单网站的开发,有基础的认识。 **主要内容**包括: * 如何安装django? * 如何启动第1个hello world项目? * 如何添加一些页面? * 如何实现网页参数的传递,能够从一个页面跳到另外一个页面? * 如何进行数据的存储? **案例**,因为我们要正式的写网站程序,需要大家多多练习,我们在学习和练习过程中,以两个案例为依托: * polls投票系统 这个是官网提供的案例,有7个课程的说明 * 博客系统 这个是我们课上要进行模拟完成的一个网站 这三四周结束之后,我们会再花4周所有的时间强化一下Django web开发的重点难点。 ### 2.3 参考资源 * 官网文档资源 https://docs.djangoproject.com/en/3.0/intro/ * 必看 官方文档是最原始的资源,大家一定要看,这个文档有英文也有中文,可以一边学开发,一边练习英语 * 【1】最简单入门 https://docs.djangoproject.com/en/3.0/intro/tutorial01/ * 【2】数据库模型 https://docs.djangoproject.com/en/3.0/intro/tutorial02/ * 【3】模版视图 https://docs.djangoproject.com/en/3.0/intro/tutorial03/ * 【4】表单form与通用视图generic view https://docs.djangoproject.com/en/3.0/intro/tutorial04/ * 【5】测试 https://docs.djangoproject.com/en/3.0/intro/tutorial05/ * 【6】样式设置 https://docs.djangoproject.com/en/3.0/intro/tutorial06/ * 【7】后台管理 https://docs.djangoproject.com/en/3.0/intro/tutorial07/ * 自强学堂 https://code.ziqiangxuetang.com/django/django-tutorial.html * 按照知识点进行介绍的一个文档资源,写的比较汇总,而且通俗易懂;建议大家先看官方文档,跟着一步一步去做,一步一步去理解,有不懂的再参考这个文档 * 14天搞定DjangoWeb开发 https://www.bilibili.com/video/av89018506 * 这是哔哩哔哩上的一个视频资源,14天搞定,希望大家能够搞定 * 慕课网的视频资源 * https://www.imooc.com/learn/790 * https://www.imooc.com/learn/1110 ### 2.4 计划安排及预习内容 #### 第4周 **目标:** * django的安装,能够在代码中查看django的版本号说明安装成功 * 使用命令创建项目、创建应用,并启动 * 简单理解django项目的目录结构,重点理解urls.py、views.py两个文件 * 能够在view.py添加页面功能,并在urls中进行 `url<==>view` 之间的映射 * 理解template,能够将view的返回结果设置为渲染的html页面 * 理解静态资源,能够为template设置link形式的css文件 **预习内容:** * django安装 从前面提到的自强学堂或慕课网的资源里去找与安装相关的文档或视频 * 如果想使用虚拟环境,可以支持多个django版本的话,可以看我的bilibili上的关于虚拟环境的设置 * 如何使用conda进行python虚拟环境的管理 https://www.bilibili.com/video/av95840591 * 例子演示 https://www.bilibili.com/video/av95840874 * django最简入门 * 官方文档【必看】 * 【1】最简单入门 https://docs.djangoproject.com/en/3.0/intro/tutorial01/ * 【3】模版视图 https://docs.djangoproject.com/en/3.0/intro/tutorial03/ * 【6】样式设置 https://docs.djangoproject.com/en/3.0/intro/tutorial06/ * 其他资源选看,找关于视图和模版的内容 **作业项目(博客系统v0.1):** * 实现两个页面: * 博客列表页面 * 某博客详情页面 * 有必要的css样式 #### 第5周 **目标:** * 理解数据库的作用 * 理解django中model与数据库之间的关系 * 掌握django中model的建立、迁移与查询 **预习内容:** * 官方文档必看 【2】数据库模型 https://docs.djangoproject.com/en/3.0/intro/tutorial02/ * 其他资源选看,找关于模型相关的内容 **作业项目(博客系统v0.2):** * 在v0.1的基础上,实现数据库的支持 * 实现博客model,并migrate到自带的sqlite数据库中 * 两个页面的数据均从数据库来查 #### 第6周 **目标:** * 理解表单的作用 * 理解并掌握模型model的增删改的操作 * 理解并掌握页面间数据传递的方式 **预习内容:** * 官方文档必看 * 【2】数据库模型 https://docs.djangoproject.com/en/3.0/intro/tutorial02/ * 【4】表单form与通用视图generic view https://docs.djangoproject.com/en/3.0/intro/tutorial04/ * 其他资源选看,找关于模型相关的内容 **作业项目(博客系统v0.3):** * 新功能: * 增加博客 * 删除博客 * 修改博客 #### 第7周 **目标:** * 理解shortcuts快捷操作的作用 * 理解网站的前台业务和后台管理,能够使用系统所带admin模块 * 理解测试的作用和实现方式 **预习内容:** * 官方文档必看 * 【7】后台管理 https://docs.djangoproject.com/en/3.0/intro/tutorial07/ * 【5】测试 https://docs.djangoproject.com/en/3.0/intro/tutorial05/ * 其他资源选看,找关于模型相关的内容 **作业项目(博客系统v.4):** * 代码优化 * 通读官网polls投票系统的教程,寻找可以进一步优化代码的地方,精进博客系统 ## 3 第三阶段 ### 3.1 承上启下 #### 承上 第二阶段我们学了什么? * 如何使用django,对django对基本理解 * 什么是view(包括request response) * 什么是url路由,网址与view如何进行映射 * 什么是模型,django操作数据库的方式 * 什么是模板,什么是将网页的模板与数据进行分离,render是什么, django中的模板有什么特点? > 总的来说: 第二阶段我们实现了一个`可以看的`的CRUD的网站 #### 启下 那么接下来我们该做些什么呢 * 模板引擎的语法深入研究一下: 当要把数据渲染到模板时,会碰到哪些操作呢 * 数据库多表关联查询如何操作? Model里的外键以及关联查询如何应用 * 什么叫做会话维持?如何让网站只能登录用户才能操作呢,并且分得清是哪个登录用户? * 表单有没有快捷操作方式呢 ### 3.2 第三阶段安排 #### week 8 **目标:** * 理解模板引擎的工作原理 * 掌握模板的`插值` `命令` * 掌握模板的嵌套 **预习内容:** * https://docs.djangoproject.com/en/3.0/ref/templates/language/ **作业项目:** * 完善博客网站的模板,要求应用到模板的各个知识点 #### week 9 **目标:** * 掌握表的外键 * 掌握Model的多种Field类型 * 掌握Queryset的使用方法 **预习内容:** * https://docs.djangoproject.com/zh-hans/3.0/topics/db/ * https://code.ziqiangxuetang.com/django/django-models.html * https://code.ziqiangxuetang.com/django/django-queryset-api.html * https://code.ziqiangxuetang.com/django/django-queryset-advance.html * https://docs.djangoproject.com/en/3.0/#the-model-layer **作业项目:** * 为博客网站添加 `用户表`、`评论表`,并将这两张表放入admin管理 * 能够使用shell对多表进行操作 #### week 10 **目标:** * 理解用户登录、会话维持的原理 * 理解Django中对cookie、session的处理方式 * 掌握用户注册与登录的方式 **预习内容:** * https://docs.djangoproject.com/en/3.0/topics/auth/ * https://docs.djangoproject.com/en/3.0/topics/auth/default/ * [简书-用户表创建](https://www.jianshu.com/p/c19bd6b9a5ef) [注册](https://www.jianshu.com/p/9e04b2f15e0d) [登录](https://www.jianshu.com/p/d017d038f583) * https://learndjango.com/tutorials/django-login-and-logout-tutorial **作业项目:** * 为博客系统添加用户注册和登录功能 #### week 11 **目标:** * 理解django中form的封装 * 掌握django中form的使用方式 **预习内容:** * https://code.ziqiangxuetang.com/django/django-forms.html **作业项目:** * 尝试将博客系统中的用户注册、登录、添加博客、修改博客等页面使用django-form的形式实现 ### 3.3 参考 * 模板template * https://docs.djangoproject.com/en/3.0/ref/templates/language/ * https://code.ziqiangxuetang.com/django/django-template.html * https://code.ziqiangxuetang.com/django/django-template2.html * https://docs.djangoproject.com/en/3.0/#the-template-layer * 模型Model * https://docs.djangoproject.com/zh-hans/3.0/topics/db/ * https://code.ziqiangxuetang.com/django/django-models.html * https://code.ziqiangxuetang.com/django/django-queryset-api.html * https://code.ziqiangxuetang.com/django/django-queryset-advance.html * https://docs.djangoproject.com/en/3.0/#the-model-layer * 表单form * https://docs.djangoproject.com/en/3.0/#forms * https://code.ziqiangxuetang.com/django/django-forms.html * 登录及会话维持auth session * https://docs.djangoproject.com/en/3.0/topics/auth/ * https://docs.djangoproject.com/en/3.0/topics/auth/default/ * [简书-用户表创建](https://www.jianshu.com/p/c19bd6b9a5ef) [注册](https://www.jianshu.com/p/9e04b2f15e0d) [登录](https://www.jianshu.com/p/d017d038f583) * https://learndjango.com/tutorials/django-login-and-logout-tutorial