美文网首页django@IT·互联网程序员
第二个django项目:低仿版知乎

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

作者: 海上牧云l | 来源:发表于2017-01-25 23:49 被阅读1955次

    本来开始用简书的时候规定自己一周至少写两篇文章,然而现在距离上一篇的时间已经过去了快一个月了,现在开始慢慢补吧。最近花了大约三个星期,从前端、后端、数据库到部署完成了一个简单的问答网站,目前部署在搬瓦工,还有不少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做一个博客练练手。

    相关文章

      网友评论

      • 1df1778ae27c:楼主你好,可以加你联系方式吗,想学习学习:pray:
      • 轩辕小爱:可以的,大致看了一下感觉作者原来是做前端的吧,因为写的Python代码跟我似的看着有点low:smile:
        轩辕小爱:@海上牧云l 加油💪
        海上牧云l: @轩辕小爱 哈哈,确实low,我啥都不是,学生自己写着练手的
      • everfight:楼主问下部署到搬瓦工有相关教程的资料提供么?
        海上牧云l: @EverFighting 我写了,进我主页,就在这一篇的下一篇
      • fc8f7fffdfab:关注!正在学习中
      • Msir:感谢你的分享,更期待你的好作品。
      • 求愚:赞 厉害~
      • 晚云落:移动端上传不了图片🤔
        海上牧云l:@杏花xian外雨 可能是浏览器的问题?我手机自带浏览器和搜狗都可以
        晚云落: @海上牧云l 杏花xian外雨: 对啊,点那个choose file没反应
        海上牧云l:是头像吗,我弄得太简陋了,先上传,然后点那个修改头像。内容里面的图片刚要开始做。
      • ce4d4ead459a:还有流程?太贴心了
      • 来时往昔:作者准备开源到GitHub上吗?供我们这些初学者参考参考
        LucianoSimon: @海上牧云l 感谢作者
        海上牧云l: @来时往昔 嗯,好的

      本文标题:第二个django项目:低仿版知乎

      本文链接:https://www.haomeiwen.com/subject/opwivttx.html