返回顶部
首页 > 资讯 > 后端开发 > Python >Python搭建博客网站小结
  • 304
分享到

Python搭建博客网站小结

小结博客网站Python 2023-01-31 05:01:55 304人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

引言 文件结构 关键技术 Http工作流程 ORM框架Day3-Day4 WEB框架Day5 作业成果 博客首页 写博客 文章管理 文章详情 总结 参考 断断续续终于过了一遍廖雪峰的python教程,于

  • 引言
  • 文件结构
  • 关键技术
  • 作业成果
      • 博客首页
      • 写博客
      • 文章管理
      • 文章详情
  • 总结
  • 参考

断断续续终于过了一遍廖雪峰的python教程,于此梳理教程实战作业:搭建一个Blog网站。
由于欠缺前端知识,有些代码直接引用于项目源码,个人做了尽量详尽的注释以帮助理解,希望在今后能够学习html(HTML 30分钟入门教程)、CSSjavascript等知识,然后回头重新理解本项目。
作业托管于我的GitHub

awesome-python3-webapp/     <--根目录
|
+-www/                      <--web项目目录
    |
    +-static/               <--静态资源目录
    |
    +-templates/            <--模板文件目录
    |   |
    |   +-__base__.html         <--基础模版,父模版
    |   |
    |   +-blog.html             <--文章详情模版,后加文章id构成完整路径
    |   |
    |   +-blogs.html            <--首页模版
    |   |
    |   +-manage_blog_edit.html <--编辑文章模版
    |   |
    |   +-manage_blogs.html     <--文章管理模版
    |   |
    |   +-manage_comments.html  <--评论管理模版
    |   |
    |   +-manage_users.html     <--用户管理模版
    |   |
    |   +-reGISter.html         <--注册模版
    |   |
    |   +-signin.html           <--登陆模板
    |
    +-apis.py            <--api接口,定义几个错误异常类和Page类用于分页
    |
    +-app.py             <--HTTP服务器以及处理HTTP请求;拦截器、jinja2模板、URL处理函数注册等
    |
    +-config.py           <--默认和自定义配置文件合并
    |
    +-config_default.py   <--默认的配置文件信息
    |
    +-config_override.py  <--自定义的配置文件信息
    |
    +-coroweb.py         <--封装aiohttp,即写个装饰器更好的从Request对象获取参数和返回Response对象 
    |
    +-favicon.ico         <--网页缩略图标
    |
    +-handlers.py         <--处理各种URL请求
    |
    +-markdown2.py        <--支持markdown显示的插件
    |
    +-models.py          <--采用ORM构建三个映射数据库表的类:User、Blog、Comment
    |
    +-models_test.py      <--测试ORM
    |
    +-orm.py              <--ORM框架
    |
    +-pymonitor.py        <--用于支持自动检测代码改动重启服务
    |
    +-schema.sql          <--创建表的SQL脚本

1.http工作流程

http流程
1. 客户端(浏览器)发起请求
2. 路由分发请求(这个框架自动帮处理),add_routes函数就是注册路由。
3. 中间件预处理
- 打印日志
- 验证用户登陆
- 收集Request(请求)的数据
4. RequestHandler清理参数并调用控制器(Djangoflask把这些处理请求的控制器称为view functions)
5. 控制器做相关的逻辑判断,有必要时通过ORM框架处理Model的事务
6. 模型层的主要事务是数据库的查增改删。
7. 控制器再次接管控制权,返回相应的数据。
8. Response_factory根据控制器传过来的数据产生不同的响应。
9. 客户端(浏览器)接收到来自服务器的响应。

2.ORM框架Day3-Day4

ORM全称为对象关系映射(Object Relation Mapping),即用一个类来对应数据库中的一个表,一个对象来对应数据库中的一行,表现在代码中,即用类属性来对应一个表,用实例属性来对应数据库中的一行。具体步骤如下:

  1. orm.py中实现元类 ModelMetaclass:创建一些特殊的类属性,用来完成类属性和表的映射关系,并定义一些默认的SQL语句,如SELECT, INSERT, UPDATE, DELETE等
  2. orm.py实现Model类:包含基本的getattr,setattr方法用于获取和设置实例属性的值,并实现相应的SQL处理函数,如find、findAll、save、remove等
  3. model.py中实现三个映射数据库表的类:User、Blog、Comment,在应用层用户只要使用这三个类即可

3.web框架Day5

aiohttp已经是一个Web框架了,在此主要对aiohttp库做更高层次的封装,从简单的WSGI接口到一个复杂的web framework,本质上还是对request请求对象和response响应对象的处理,可以将这个过程想象成工厂中的一条流水线生产产品,request对象就是流水线的原料,这个原料在经过一系列的加工后,生成一个response对象返回给浏览器。具体步骤如下:

  1. coroweb.py中@get()装饰器给http请求添加请求方法和请求路径这两个属性;RequestHandler()调用url参数,将结果转换位web.response
  2. app.py中传入拦截器middlewares,通过add_routes()批量注册URL处理函数、init_jinja2()初始化jinja2模版、add_static()添加静态文件路径
  3. create_server()创建服务器监听线程
  4. 监听线程收到一个request请求
  5. 经过几个拦截器(middlewares)的处理(app.py中的app = web.Application..这条语句指定)
  6. 调用RequestHandler实例中的call方法;再调用call方法中的post或者get方法
  7. 调用handlers.py中响应的URL处理函数,并返回结果
  8. response_factory在拿到经URL处理函数返回过来的对象,经过一系列类型判断后,构造出正确web.Response对象,返回给客户端

博客首页:

博客首页

写博客:

写博客

文章管理:

管理博客

文章详情:

博客详情

通过该作业,基本了解了一个webapp的开发流程和部分技术,了解了http的工作原理,复习了Python的使用。但是也深刻认识到python知识点的不熟练和前端相关知识的匮乏,后续仍要加强python项目练习和前端知识的学习。

廖雪峰官网Blog网站实战

moling3650/mblog

zhouxinkai/awesome-python3-webapp

ReedSun/Preeminent

--结束END--

本文标题: Python搭建博客网站小结

本文链接: https://lsjlt.com/news/188929.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python搭建博客网站小结
    引言 文件结构 关键技术 http工作流程 ORM框架Day3-Day4 web框架Day5 作业成果 博客首页 写博客 文章管理 文章详情 总结 参考 断断续续终于过了一遍廖雪峰的Python教程,于...
    99+
    2023-01-31
    小结 博客网站 Python
  • 如何在云主机搭建博客网站
    要在云主机上搭建博客网站,以下是一些基本步骤:1. 选择云服务提供商: 选择一个可靠的云服务提供商。2. 选择合适的云主机实例: 根...
    99+
    2023-09-18
    云主机
  • golang搭建博客
    近年来,Golang(Go语言)因其高效的运行速度和简单的语法逐渐成为了互联网开发的热门语言,而博客作为一个非常受欢迎的互联网应用,也充分展现了Golang的优势。在本文中,我们将介绍如何使用Golang搭建一个简单的博客。步骤一:安装Go...
    99+
    2023-05-16
  • 如何使用博客系统搭建个人网站
    如何使用博客系统搭建个人网站,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。博客上的文章通...
    99+
    2023-06-12
  • 怎么用Docker快速搭建一个博客网站
    小编给大家分享一下怎么用Docker快速搭建一个博客网站,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、准备工作本章教程基于Docker搭建,所以需要你提前在服务器上安装好Docker环境。Docker安装教程:http...
    99+
    2023-06-25
  • 详解用Docker快速搭建一个博客网站
    目录一、准备工作二、部署流程 三、访问测试Halo 是一款现代化的个人独立博客系统,给习惯写博客的同学多一个选择。 官网地址:https://halo.run/ 一、准备工作 本章教...
    99+
    2024-04-02
  • 北京vps主机租用怎么搭建博客网站
    搭建博客网站的步骤如下:1.购买VPS主机:选择一个靠谱的VPS主机服务商,购买一个VPS主机,同时需要购买域名和解析服务。2.安装...
    99+
    2023-06-05
    北京vps主机 vps主机 vps
  • 免费香港云服务器怎么搭建博客网站
    免费香港云服务器搭建博客网站的方法:1、输出高质量的内容和寻找一些高质量的文章进行转载,确保网站的原创度和排名;2、增加博客网站的曝光度,做好网站SEO的工作,如更换友链,增加tag和长尾关键词等;3、对网站进行持续更新,增加网站的权重;4...
    99+
    2024-04-02
  • 如何使用Hexo在Github上搭建个人博客网站
    作为一个技术爱好者或互联网从业者,拥有一个自己的博客网站是非常有必要的。而如何快速、简单地搭建一个博客网站呢?本文将介绍如何使用Hexo在Github上搭建个人博客网站。什么是Hexo?Hexo是一个基于Node.js的静态博客生成器。它可...
    99+
    2023-10-22
  • 使用个人免费空间怎么搭建博客网站
    要搭建一个博客网站,您需要遵循以下步骤:1.选择一个网站构建平台:有很多免费的网站构建平台可以选择,例如WordPress、Blog...
    99+
    2023-06-03
    个人免费空间 空间
  • 怎么用python搭建个人博客
    要用Python搭建个人博客,可以使用以下步骤:1. 选择Web框架:Python有许多流行的Web框架可供选择,例如Django和Flask。这些框架都提供了快速构建Web应用程序的工具和功能。2. 安装所选框架:根据选择的框架,按照...
    99+
    2023-08-11
    python
  • nodejs怎么搭建博客
    现如今,博客已经成为一个非常重要的工具,能够帮助你在网络上展示自己的想法和知识,以及赚取一些被网络上的访问者所付出的酬劳。但是,要想建立一个自己的博客并不容易,这需要大量的时间和技能。 在这篇文章中,我们将会讨论如何利用Node.js来搭建...
    99+
    2023-05-14
  • 微信小程序|搭建一个博客小程序
    文章目录 一、文章前言 二、创建小程序 三、功能开发 (1)首页 (2)领域页 (3)博客详情...
    99+
    2023-10-03
    微信小程序 小程序 微信 个人博客
  • 如何在FreeBSD系统上搭建并管理网站或博客
    在FreeBSD系统上搭建和管理网站或博客可以通过以下步骤实现: 安装Web服务器:在FreeBSD系统中,常用的Web服务器有A...
    99+
    2024-04-09
    FreeBSD
  • Gridea+GitHub搭建个人博客
    某日闲余时间看到一篇介绍Gridea博客平台的文章,大概看了一下觉得此平台还不错,随即自己进入Gridea官网瞅了瞅。哇,这搭建过程也太简单了吧,比Hexo博客搭建要容易很多,而且还有后台管理客户端,很适合...
    99+
    2024-04-02
  • ubuntu手动搭建typecho博客
    Typecho是一个非常轻量化的开源博客程序,发展至今已经比较成熟,但是在部署时也会遇到一些问题。本文将根据Typecho的安装需求,从零开始部署一个完整的typecho博客。 Typecho需要的组件: PHP5.1 以上 支...
    99+
    2023-09-01
    php mysql nginx 运维
  • Github+Hexo怎么搭建博客
    在这个数字化时代,拥有一个自己的博客是一件十分有用的事情。可能你会问,为什么需要拥有一个博客呢?这是因为首先,博客可以作为一个展示自己技能的平台,其次,通过博客可以与其他有共同兴趣的人进行交流和沟通,最后,博客还可以为你创造商业机会。那么怎...
    99+
    2023-10-22
  • 云服务器搭建博客
    云服务器搭建博客的方法非常简单,只需要使用 AWS 的 S3 服务和 Vulkan API 即可。以下是一份可能的实现文档,您可以在其中了解更多细节和方法。 配置 AWS 云服务 1.1 在 AWS 官网 https://aaws.c...
    99+
    2023-10-26
    服务器 博客
  • 使用宝塔面板搭建个人网站(博客)超详细2023
    文章目录 简介一、打开自己服务器控制面板二、安装宝塔 [宝塔地址](https://www.bt.cn/new/download.html)三、配置宝塔面板五、为你的网站导入模板总结 简...
    99+
    2023-09-01
    腾讯云 linux 服务器
  • 在树莓派上搭建WordPress博客网站,并内网穿透发布到公网
    ✨个人主页:bit me👇 目 录 🐾概述💐安装 PHP🌸安装MySQL数据库🌷安装 Wordpress🍀...
    99+
    2023-08-17
    mysql php 数据库 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作