感谢关注天善智能,走好数据之路↑↑↑阅读本文大概需要3分钟

欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答、求职一站式搞定!

天善学院618活动正在进行中!天善学院618大礼包,大数据、数据分析与数据挖掘、商业智能、机器学习、深度学习、数据库与数据仓库、R语言、Python精品课程总有一款正中你下怀吧?全场6.18折,赠送微课。最好的投资是投资自己,名额有限,欢迎登录查看!

首先需要说明一下,这篇教程是写给初学者的,这里不会有高深的概念、大段难懂的代码,这篇教程的目标是让你读懂每一句话,明白关键步骤背后的核心原理。接下来,我会带着你理解 Django 最核心的 MTV 原理,并且用「36Kr」这个实战案例来帮助你理解,带着你走一遍实现这个项目的关键步骤。如果你是一个Web的初学者,看Django文档看的头痛,想成为Python Web工程师,来吧,我们开始吧.

第一步

理解 Django 的 MTV 模式

我们在浏览器里输入36Kr的网址,然后看到网页呈现出来,这短短的几秒钟就已经把 MTV 的流程运作完毕。那么究竟是怎么运作的呢?

首先是 Model 层:

每个网站都是有数据库的,Django的 Model 层就像是数据库的代理人,我们用 Model 来操作数据库的增删改查,这样就不用单独操作数据库了。

对于36K来说,数据库里面最主要的是文章信息,我们通过 Model 这个数据库代理人来操作文章数据。

然后是 Template 层:

每个网站都是有数据库的,Django的 Model 层就像是数据库的代理人,我们用 Model 来操作数据库的增删改查,这样就不用单独操作数据库了。

对于36K来说,数据库里面最主要的是文章信息,我们通过 Model 这个数据库代理人来操作文章数据。

然后是 Template 层:

模板层负责把 Model层取出来的数据填充进网页,变成我们看到的成型的网页。这个过程我们称之为渲染。

对于36K来说,Model 层渲染的过程就是把文章数据变成可以浏览的、排版优雅的网页的过程。

然后是 View 层:

View 层负责的是把渲染好的网页返回给使用者,让我们在浏览器里面可以看见。

对于36K来说,View 层就是把网页返回给我们,让我们在浏览器里面能看到。

还有个 Url 是 View 的小弟:

我们访问 url 的时候,url 会对应的找到处理这个流程的 view。

对于36Kr来说,我们访问 http://36kr.com/ 这个网址的时候,就会对应的找到首页的 view.

第二步用 Semantic UI 写一个页面

手写 CSS 是一件很麻烦的事情,在这里推荐你使用一个 CSS 框架:Semantic UI,这个框架比起 Bootstrap 来,使用起来更加语义化,更容易上手,也更好看。

打开 Semantic UI 的文档,我们就会发现许多和 36kr 里类似的组件,把这些组件整合拼装起来,就可以做出一个页面。

具体怎样用 html 和 Semantic UI 写出这样一个网页模板,并不是这篇文章的重点,这篇文章还是着重讲 Django 的实现思路。

只需要花上30分钟跟着我们的课程学习,你就能写出这样一个页面了,接下来我们需要把这个页面转换成模板 Template。那我们先继续往下来。

第三步

Django 的准备工作

创建一个 Django 项目,需要做一系列的步骤,我们总结了一下,是这样7个步骤:

可能你会觉得有点麻烦,但这里面并没有什么难理解的地方,只需要跟着一步步做就行了。

考虑到你现在正在用手机阅读,也没办法拿着电脑跟着一步步操作,这里只是简单的列出来核心的步骤。

第四步

用模板语言实现首页文章动态

我们之前写出来的页面是静态的,内容都是写死在页面上的。但是36K这样的资讯网站,每天要发布很多新文章信息,这些文章需要从数据库中取,这就需要用到模板变量。

什么是模板变量呢?它有点像是一个占位符,我们先给那些会变化的数据预留出来位置,Django 就会帮我们填好相应的内容。

所以我们需要把每一处会变化的数据,都用模板变量的方式来替换,写法都是类似这样:{{ Title }}

Title 需要替换成你想替换掉的数据。

OK,读到这里,你就已经掌握了「如何用 Django 写一个36K」的最关键知识了。希望通过这篇文章,让你了解到创建一个 Django 项目的关键步骤,并且理解最主要的运作模式,而不是被一大堆的代码和细节搞晕。

文章的篇幅有限,很多细节没能在这展开说,如果你有兴趣学会从头到尾做出来一个 Django 项目,可以去找到一些线上教程跟着一步步学习。

天善学院svip正火爆报名中!包含Excel BI、Python3爬虫案例、Python机器学习、Python数据科学家、大数据体系、数据分析报告、数据分析师体系、深度学习、R语言案例共10套课程,欢迎大家参加。

本文作者:菜鸟学Python

原文链接:https://ask.hellobi.com/blog/caoniao_xueyuan/8517

如何用Python搭建一个36Kr网站|高手4步带你入门相关推荐

  1. vps建网站python_如何使用python搭建一个小网站 ?

    作为一名程序员,还是必须要会开发网站的,不然别人都会怀疑你是不是程序员了.今天,主要介绍一下如何使用python来搭建一个网站.可能有人会觉得搭建网站不都应该用java么?python的性能那么低.的 ...

  2. 怎样用python搭建简单的系统_如何用Python搭建一个简单的推荐系统?

    推荐系统的相关知识我们已在前文中提到,在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统. 本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小 ...

  3. python旅游推荐系统_如何用Python搭建一个简单的推荐系统?

    推荐系统的相关知识我们已在前文中提到,在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统. 本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小 ...

  4. python服务器搭建 实战_实战讲解:如何用Python搭建一个服务器

    有人说表示只学Python没有用,必须学会一个框架(比如Django和web.py)才能找到工作. 其实掌握一个类似于框架的高级工具是有用的,但是基础的东西可以让你永远不被淘汰,不要被工具限制了自己的 ...

  5. 如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

    我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库. 比如我们要下载山东大学新闻网的一个页面,该网页如下: 实现代码如下: import urllib.request ...

  6. 如何用python创建一个下载网站-使用Python下载文件的简单示例

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 学习如何使用各种Python模块从web下载文件 在本教程中,你将学习如何使用不同的Python模块从we ...

  7. 如何用python创建一个下载网站-用Python写一个简单的网页下载

    作为一个Python+爬虫的小白,今天要搞点爬虫的活儿,以前没做过,从零开始. win10的系统,python我的电脑上以前不记得什么时候安装过,安装的是3.6的版本,能用.代码工具,先使用VS co ...

  8. 如何用python创建一个下载网站-如何写一个python脚本下载文件??

    脚本在最后,可以直接试用,相关的库可能需要自己安装 第一步,你需要获得网页上下载文件地址的列表 用浏览器查看页面源文件得到 /> 可以看到,这个格式是很清晰的,用xpath获得列表即可, 这部分 ...

  9. python如何开发网站_如何用Python写一个小网站?

    一.准备 python基础相关准备:pygame的基础知识,参考目光博客的"用Python和Pygame写游戏-从入门到精通"安python 3.8.0 在python官网下载,不 ...

最新文章

  1. Socket/ServerSocket 选项
  2. Python+selenium 自动化 - 实现自动导入、上传外部文件实例演示
  3. 运营商视角的物联网商业模式-物联网操作系统篇
  4. 关于Angular @Injectable的几种测试情况
  5. PHP操作数据库,不推荐使用mysql函数,而推荐使用mysqli和PDO函数
  6. 操作系统提供什么服务、如何服务?
  7. 远端WWW服务支持TRACE请求漏洞修复(linux)
  8. flink 任务执行类的加载
  9. SQL Server数据库安装和使用
  10. iOS UITextField限制输入字数
  11. 【并发】关于并发、超卖处理的思路
  12. Kiterunner上下文感知型内容搜索工具
  13. Ubuntu20安装gcc6.3.0
  14. nodejs下载安装及配置环境
  15. scrapy爬取阳光热线问政平台
  16. matlab 函数pdf怎么用_PDF文档怎么进行批量旋转?调整页面用迅捷PDF转换器
  17. java如何自定义注解
  18. IRIS的镜像配置(2)
  19. mysql_affect_array_Mysql代理类 支持Master/Slave 读写分离
  20. Python爬虫—爬取网易云音乐【热歌榜】歌曲的精彩评论(写入txt文本文件或者MySQL数据库)

热门文章

  1. 2019年十大创新产品
  2. win10自带电影和电视无法加载字幕问题
  3. 一文彻底理解I/O多路复用
  4. 经典算法—快速排序(Quicksort)使用详解
  5. php和mysql实现员工信息管理_0066 使用PHP和MySQL实现学生分数信息管理
  6. ROS 差速转向 公式转化
  7. 【Android App】勾勒出三维立方体和球体以及它们的转动图形讲解及实战(附源码和演示视频 超详细)
  8. 一款免费下载音乐的软件
  9. 面试技巧(4)面试技巧和注意事项
  10. NKOI P3171 逃离迷宫2