第二个django项目:低仿版知乎

本来开始用简书的时候规定自己一周至少写两篇文章,然而现在距离上一篇的时间已经过去了快一个月了,现在开始慢慢补吧。最近花了大约三个星期,从前端、后端、数据库到部署完成了一个简单的问答网站,目前部署在搬瓦工,还有不少bug没有改,细节也有很多不合适,以后在慢慢改吧。
先放张图


主要用到了semantic ui的css框架、vue.js、django、mysql,通过uwsgi部署在centos6,nginx反向代理。
基本上已经做到了前后端分离,后端提供api接口,把大部分逻辑交给js去做。这里用了Django REST framework来实现api,用reqwest库向api发送get、post请求实现增删改查。
尝试采用了token认证,用js-cookie建立和移除cookies实现认证,基本的权限控制已经实现。
目前主要分为主页、答案详情页、问题详情页、话题页、问题页、登录&注册页、个人资料&资料修改页。
暂时还未实现的功能有:
1、用户之间互相回复
2、搜索
3、选中指定话题时该话题样式变化
4、关注用户
5、富文本
关于首页显示的内容,知乎有自己的算法,我只是按id一股脑显示的,暂时对这方面还没什么头绪。说是仿知乎,其实没法比,就拿来练练手而已。
部署花了很多时间,前后得有一个多星期,主要是没什么头绪,不知道vps、uwsgi、nginx和域名这些之间的联系,看了很多教程也不不明白,多亏了一个小伙伴给我打了电话讲解了,现在感觉很简单了。
vps就是一电脑,django项目运行在vps上。
WSGI是为为Python语言定义的Web服务器和Web应用程序之间的一种通用的接口,uWSGI就是web服务器,用于接受前端发送的请求并处理后发送给web应用程序,uwsgi是uWSGI服务器实现的独有的协议,只用uwsgi也能实现部署。
nginx是一个反向代理服务器,使用nginx后,uwsgi只需要将django项目运行在本地,请求和响应通过nginx进行。nginx可以将静态文件单独处理,速度要比uwsgi快。
域名需要解析到服务器的ip地址上,访问域名时会将域名解析成对应的ip。

关于部署,还要单独写一个总结,把流程写一边,毕竟坑了我很长时间。网站还要继续优化调整细节,数据库的访问也要继续优化。

最后放github

--------------2017年2月6日----------------
过完年更新了一点。
1、添加搜索功能
2、添加评论分页
3、添加用户互相回复

现在才发现vue.js自己只用了一点皮毛, 组件部分还没用到,本来想把网站组件化+webpack打包,结果比想象中的难的多,琢磨了几天放弃了,修改还不如重新写一个。这个也就这样了,自己的知识还是太少,用到的东西太单一。
下一阶段任务是vue+webpack做一个博客练练手。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器。根据搜索的教程照做,对于原理一...
    Cocoa_Coder阅读 17,235评论 4 56
  • 转载 :OpenDiggawesome-github-vue 是由OpenDigg整理并维护的Vue相关开源项目库...
    果汁密码阅读 23,220评论 8 124
  • 13 上线 上一章中,你为你的项目创建了RESTful API。在本章中,你会学习以下知识点: 配置一个生产环境 ...
    lakerszhy阅读 1,553评论 1 6
  • 先说一个故事: 某部门负责人D,进入到一家企业。她很会“察言观色”,在很短的时间里,掌握了很多内部信息。 比如她知...
    蓝之韵阅读 381评论 1 5
  • 古有三十而立,说的是做事懂分寸,言行得当,可以以礼自立于世;而现在,三十而立,可以是立身,立业,立家。立身,...
    Miu爸阅读 561评论 0 0