距离上次写文章已经过去了快一个月, 在这一个月里学了很多东西,在这里理理思路方便后面的学习。
首先是开始使用阿里云,安装并使用Linux系统,包括简单的指令操作(cd, ls, pwd, ifconfig, ping, poweroff, halt, shutdown, reboot, date, cal等等),第二是Linux的文件操作和编辑,软硬链接等等,压缩和解压缩,服务和进程,软件的安装(包管理工具安装,源码构建安装编译运行,配置环境变量后运行和直接运行),shell的编码。
其次是ftp和Nginx的服务搭建,能够通过Nginx访问。
最后是Django的使用。包括MVC,MTV模式的理解和使用,MTV工作的方式,ORM的理解和使用,view配置,获取参数,url反向解析,请求和响应,cookie和session。Template是包括处理过程,变量,标签,过滤器,继承等。高级控件是包括静态资源的配置,面向切面编程AOP,图片上传,分页加载,最后做了一个简易版小型移动电商平台的开发。
总结一下这段时间,学的还是比较吃力,有很多含糊的地方。对于一个完全没有基础的小白来说这是难以避免的,如果你和我是同样的情况,我想对咱们说:亲爱的,不要慌张,学习是有一个过程的,有量变到质变的积累,也有理论到实践的升华,有经验到知识的总结,也有时间的魔法。所以我们应该做的是沉下心来,先做,遇到问题一个个处理,在处理的过程中不断提升。虽然这看上去是一个笨办法但这对大多数人来讲是唯一的办法。因为我们无法做到在理论学习之后就能应用自如,也无法做到大量的触类旁通,所以我们只能一点一点的攻破一点一点的啃。其实这也是对所有人最佳的学习方式。(ps:终于感受到了经验的力量)
最后:附一点总结的资料和一个完整的简易版购物车项目的流程
1 新建项 目 应用
2 init
3 settings
4数据库
5 启动mysql服务器
6 创建一个数据库
7把数据库
8放到内
9网,不让
10公网能够
11访问
12 更改数据库配置
13 配静态资源
14更改时区和语言
15制作购物车和首页的网页
16给各个网页配url
17在控制器写函数 (index,add_to_cart,show_cart)
18定义模型:商品
19迁移数据
20查看表已经存在
21添加sql语句插入数据
22确认数据已经存在
23 配置admin
24注册商品模型和自定义显示函数
25设定显示内容
26查询范围设定
27 创建超级管理员账号
28名字
29邮箱
30密码
31 启动服务器登录查看
32 python manage.py runserver
33模型是否可以看到
34 制作首页 直接查看所有商品
35渲染商品页
36拿到一个所有商品的列表
37传递一个商品列表
38 查看首页
39把商品加到购物车里面
40 再定义一个类,购物车项,增加数量,小计
41定义CartItem类
42初始化方法,索引,对应的商品,数量
43给购物车项封装属性total (小计)
44因为商品没有数量的属性,要定义一个购物车项,得到商品的数量,和先后顺序
45 定义购物车类 (如果是要持久化就要定义模型,不持久化定义类就可以了)
46定义ShoppingCart类
47第一商品叫0号,叠加
48items就是装购物车项的对象
49定义购物车的方法
50添加
51删除
52清空
53数量归零
54列表容器清空
55 添加项
56如果之前已经有的只加数量
57新项才加进去
58循环判断有没有这个商品
59如果之前已经有的只加数量
60如果加进来的id跟我的购物车id相同说明是同一个商品
61商品数量+=传进来的数量
62循环结束
63没有这个商品就追加这个商品项
64改造
65把列表改造成字典
66看下字典里面有没有这个键
67如果在用键取值,取到商品项后加上数量
68否则就去这个字典里面追加键
69把item作为值放进去
70 移除和清空传商品的id进来
71判断如果字典里面有这个id
72移除这个键
73清空
74id是保留字,所以不要用id,或者不用这个内置函数,这个里面不用
75 添加到购物车
76通过id取到这个商品,拿到商品对象
77拿购物车:通过请求拿session,从session里面get购物车,如果没有就新创建一个
78创建一个购物车项 (购物车里的num属性作为no,商品)
79把购物车项加到购物车里
80重新给购物车赋值
81还是回到查看商品的页面:重定向
82另一种写法
83 显示购物车:把购物车取出来传过去
84购物车页面需要商品项,
85拿到购物车,
86里面有一个属性叫items取所有的值,是一个列表,排序,键是no
87如果不为空,我就取items,如果为空就返回空列表
88渲染页面,请求取到页面,传递的内容是就是刚才取到的购物车项
89 包装总计属性
90包装总计属性
91添加购物车页面的总计
92最后的写法:
93 序列化的处理
94 序列化器
95配一个SESSION_SERIALIZER,用serializers sessions
96debug问题
97 修改
98改进
99返回一个列表,
100返回一个cart
101继承models里面的Model
102设置id,自动,主键,别名gid
103商品名称,字符串,最大长度50,别名gn
104商品价格,小数,最多10位,小数点后两位,别名gprice
105商品图片,存路径,最大长度255,别名
106指定表的名字,tb_goods
107升序排列
108类就可以了)
109 所有的不写下划线
110每次加完后num要加1,否则就没有先后顺序了
111放东西进去