Toggle navigation
Mr.Strawberry's House
文章
网址导航
更多
甜品站
杂物间
新版博客
关于 快刀切草莓君
友情链接
妙妙屋开发日志
注册
登录
搜索
文章列表
分类 标签
归档
# 妙妙屋背后的故事 ## 学习和建站经历 我学习Web开发的过程断断续续进行的,在此按照时间顺序介绍。 ### 2018年春 2018年初,开始接触网页前端,经过半个月的学习,对前端知识(HTML、CSS、JS)有了初步认识,并制作出了一组静态的网页。 ![旧版妙妙屋](http://www.zrawberry.com/media/picture/c6a298fd53a342ab86a8080fe79ed43b.png) 随后我便产生了建站的想法,一个具有博客、自定义网址导航功能的网站,这也就是妙妙屋的由来。有了基本的前端知识,接下来要做的就是学习后端的知识。但由于电子信息的课业繁重,同时我又要自学一些计算机的课程,这件事就一直被搁置下来了。 ### 2018年秋 在我用大约半年的时间学习了Python语言之后,就开始学习Django框架(没记错的话当时的版本是1.9)。在2018年的9月份,我给妙妙屋网站添加了用户管理和自定义网址导航功能。 ![旧的账号登陆界面](http://www.zrawberry.com/media/picture/211905dcb1db4b04a4c808677dc322e0.png) 当时的学习方法可谓是盲人摸象,学到的东西只是冰山一角,开发的方式也是刀耕火种。我用原生的sql语句完成了模型层的设计和视图层查询,用session实现了账号信息在用户端的保存。现在回过头来看,这个版本的开发就像是使用自动化机床上的工具手工造了一个轮胎。虽然实现的方法不对门路,但它好歹是个动态网站了,接下来我又学习了一些Linux知识,最后用`Nginx+uwsgi+MySQL`的组合部署了我的网站。 ### 2019年 寒假里我又学了一些机器学习的知识,跨考计算机研究生的想法也是在这时候产生的。于是,为期9个月的初试备考阶段开始了。期间我还借阅过一本django书籍,这使我对django也有了新的认识。备考期间我的精力都放在了英语、数学、政治和初试的专业课上,网站开发暂时被搁置了下来。 ### 2020年 时间来到2020年,在庆祝自己渡过初试之后,我又有时间进行网站开发了!此时Django已经更新到了3.0版本,我从图书馆借了老齐编写的这本书。在书的引导下,我先是按照书上代码完成了博客、账号系统的开发,随后又照葫芦画瓢重构了我的网址导航功能。s ## 开发中遇到的问题 我的开发主要参考了老齐的书(django2.x)中的例子,并在此基础上进行了一些跟进。 ### django的版本迭代 我开发时使用的是django3.0的版本,老齐书上是2.x版本的案例。版本迭代引出了新的特性,也整合了旧的功能,例如: 1. 过去网页模板引入静态文件使用的是`{% load staticfile %}`,而新版本将其整合到`static`中,使用的是`{% load static %}`。 2. 新版本的django默认禁止跨域行为,默认拒绝`iframe`的访问。我是在一篇CSDN的[文章](https://blog.csdn.net/weixin_42886895/article/details/88970578)上找到了解决方案。 ### bootstrap学习和django的模板类 书上的案例已经使用了一些bootstrap的样式,为了理解这些标签的作用,我又浏览了一下bootstrap的文档。经过调整,我的网站已经比书上的案例好看了许多。于是新的问题又出现了,使用`django.form`和`auth_views.LoginView.as_view`生成的表单要如何添加样式呢?这个问题书上没有答案,但这个问题又迫切需要解决,因为我需要给表单加上样式来实现响应式布局。经过一个多小时的琢磨,我在Stak Overflow上找到了[答案](https://stackoverflow.com/questions/5827590/css-styling-in-django-forms)。回答者提供了3种方式,我最后选择了其中我认为最好的一种:为django的模板层添加一个自定义tag`addclass`,对模板里的任何`form`都可以用`{{ xxxform|addclass: "xxclass"}}`的方式修改样式,在达到目的的同时又保持了前后端分离。看着最后写好的界面,我真是成就感满满! ### 网址导航功能的开发 很快我完成了书上的大部分功能,但此前都是按部就班的参考书上的代码。为了检验我对django的掌握程度,我开发了书本上没有的网址导航功能。离开了书自己思考确实比直接看书有难度,模型层该如何设计来存放网址和网站名?用字典组织网址和网站名又如何将其存入数据库?最后我的做法是用json将字典类型的网站信息转换成序列然后再存入数据库。 ## 总结 从最初报计算机专业被调剂,到错过转专业机会,备考研究生初试的过程中我总是觉得自己在做困兽之斗。**但回头过来看自己曾走过的路,就会感觉每一小步的努力都是值得的。学习技术也是这样一件充满挑战和艰辛的过程,但只要静下心来踏踏实实地坚持下去,一定会收获满满。** 计算机是一个不断发展的行业,而我作为一个尚未入行的小白,需要学习的还有很多。妙妙屋的上线是我的一个新起点,接下来除了继续开发网站,我还打算进行一些机器学习方面的尝试,把曾经学过的理论知识动手实现出来。人生苦短,不如多学点东西?非常感谢在学习路上给予我帮助的人,祝愿所有技术人在新的一年能学有所成。
文章信息
标题:妙妙屋背后的故事
作者:快刀切草莓君
分类:网站开发
发布时间:2020年1月30日
最近编辑:2020年5月31日
浏览量:1395
↑