基础设计

数据库

1.user里有继承系统自带user的 UserProfile、管邮箱验证码的 EmailVerifyRecord
2.project里有项目 Project,以及掌管项目等级的 ProjectPlan
3.category里有项目目录 ProjectsCategory
4.trade里有订单信息 OrderInfo、订单内的商品信息 OrderGoods
5.operation里有用户收藏 UserFav、用户收货地址 UserAddress、用户留言 UserLeavingMessage

相关知识
1.model里面可以带class显示元信息 和一些def,用来查相关数据
2.需要多个层级的时候,用models.ForeignKey()
3.订单项目需要唯一外键就是用户,还需要有订单状态、订单编号、订单金额等。订单内的商品需要订单和项目两个外键。支付时需要用的就是订单这个表,现在工具类里建一个class AliPay,配置setting,然后去view里写AlipayView及相关post、get操作。注意相关serializers.py。more
4.项目可以增加点击量这个属性。用户评论需要两个外键,用户和课程。用户购买的项目需要两个外键,用户和课程。用户收藏需要两个个外键,用户和项目,项目直接传id过去即可。用户地址,一个外键,用户。
5.pycharm远程调试代码。远程调试
6.需要在class里用装饰器模式的时候需要在utils目录下创建文件 mixin_utils.py 添加相关代码。
7.ORM相关操作:create()、save()、all()、filter()、exclude()、order_by()、get()、aggreagte()、exists()、update()、delete()、in、contain、gt、gte、lt、lte

在这些数据库设计里面需要注意的是:
1.各个表之间的外键关系,比如订单和订单内商品、订单和用户、订单和用户地址?

2.为了实现最后需求,还需要加什么字段?
很多···

3.用户收藏是怎么实现的?
在用户收藏那个表里,filter用户名,查到所有属于这个用户的相关收藏即可。

4.项目提交的post?
先初始化表单实例并获取用户全部信息、验证提交的是否合法、如果合法获取相关数据、实例化一个model对象,把数据传到model对象里,save、跳转相关页面。注意前端页面的修改。

5.怎样做提交审核?
在项目字段里加一个flag状态栏,用户提交时默认为0,审核过为1.显示的时候只能显示为1的交易。

相关页面:1.如何做post,211页。ModelForm 235页 2.session相关应用250页。

网页前端

1.改html静态路径-> 2.写views里的class或者是def -> 3.写urls里的url路径

网页前端需要注意的是:
1.base.html是怎么使用的?具体上面的一片页面怎么用
共享模板的使用,常用的包括base、header、footer.html.在base里用{% block··· %},声明哪部分是叫什么名字的模板 。在需要使用的网页里用{% include··· %}就能导入指定模板文件。需要注意的是,如果base.html指定了title、headmessage、content,那么接下来继承base.html的所有文件都要提供这3个区块的内容。当然首先在首行声明继承的是哪个文件{% extends··· %},然后分别在三个区块里指明要填什么内容即可,你是把base.html拿过来,然后把指明的区块换base.html里的内容。

2.面包屑是怎么使用的?

3.ajax怎么用?ajax
类似一种js函数,你在ajax里写好post、get后会发生什么,然后html的元素通过标签声明使用某个ajax。
具体参数有:在其他代码之后执行、绑定clink事件、以post发送数据、异步发送、成功后的回调、后台返回数据的处理。
这里使用ajax的有:某个任务的提交判断、登录判断、收藏分享、用户评论。
所以问题大的是,在该项目中很多操作是写在js里的,需要我们去改。所以尽量看看还有没有其他办法。
特点是异步,即不用刷新页面数据就可以发生变化。

4.怎么找到更合适的html页面?
现在有 主页、登录、注册、找回密码、后台所有、全部列表、项目详情。OK
缺 项目提交、用户相关显示。
结论,根据现有html进行改进,适当加几个html页面,用base的形式在某些地方加。比如:1.首页的某些地方、全部列表的某些地方、添加注意的某些地方。

功能完善

根据教程完成7成页面

用到了xadmin(注意xadmin中注册相关model)、STMP登录及邮箱找回、pillow图片引用(数据库中的image是用字符串存的,需要前面加media url路径)、分页功能、markdown的使用、关键词搜索功能

支付、分类、提交三个模块

支付宝支付连接
第三方登录(微博 qq 微信)第三方登陆