我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python搭建博客网站小结

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python搭建博客网站小结

  • 引言
  • 文件结构
  • 关键技术
    • http工作流程
    • ORM框架Day3-Day4
    • web框架Day5
  • 作业成果
      • 博客首页
      • 写博客
      • 文章管理
      • 文章详情
  • 总结
  • 参考

断断续续终于过了一遍廖雪峰的Python教程,于此梳理教程实战作业:搭建一个Blog网站。
由于欠缺前端知识,有些代码直接引用于项目源码,个人做了尽量详尽的注释以帮助理解,希望在今后能够学习HTML(HTML 30分钟入门教程)、CSS、JavaScript等知识,然后回头重新理解本项目。
作业托管于我的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清理参数并调用控制器(Django和Flask把这些处理请求的控制器称为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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python搭建博客网站小结

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python搭建博客网站小结

引言文件结构关键技术http工作流程ORM框架Day3-Day4web框架Day5作业成果博客首页写博客文章管理文章详情总结参考断断续续终于过了一遍廖雪峰的Python教程,于此梳理教程实战作业:搭建一个Blog网站。 由于欠缺前端知识,有
2023-01-31

如何在云主机搭建博客网站

要在云主机上搭建博客网站,以下是一些基本步骤:1. 选择云服务提供商: 选择一个可靠的云服务提供商。2. 选择合适的云主机实例: 根据博客的预期流量和需求选择适合的云主机实例。一般来说,初创博客网站可以选择较小的实例,并逐渐扩展。3. 安装
2023-09-18

如何使用博客系统搭建个人网站

如何使用博客系统搭建个人网站,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。博客上的文章通
2023-06-12

怎么用Docker快速搭建一个博客网站

小编给大家分享一下怎么用Docker快速搭建一个博客网站,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、准备工作本章教程基于Docker搭建,所以需要你提前在服务器上安装好Docker环境。Docker安装教程:http
2023-06-25

北京vps主机租用怎么搭建博客网站

搭建博客网站的步骤如下:1.购买VPS主机:选择一个靠谱的VPS主机服务商,购买一个VPS主机,同时需要购买域名和解析服务。2.安装LAMP环境:在VPS主机上安装LAMP环境(Linux+Apache+MySQL+PHP),这是搭建博客网
2023-06-05

如何使用Hexo在Github上搭建个人博客网站

作为一个技术爱好者或互联网从业者,拥有一个自己的博客网站是非常有必要的。而如何快速、简单地搭建一个博客网站呢?本文将介绍如何使用Hexo在Github上搭建个人博客网站。什么是Hexo?Hexo是一个基于Node.js的静态博客生成器。它可
2023-10-22

怎么用python搭建个人博客

要用Python搭建个人博客,可以使用以下步骤:1. 选择Web框架:Python有许多流行的Web框架可供选择,例如Django和Flask。这些框架都提供了快速构建Web应用程序的工具和功能。2. 安装所选框架:根据选择的框架,按照官方
2023-08-11

使用个人免费空间怎么搭建博客网站

要搭建一个博客网站,您需要遵循以下步骤:1.选择一个网站构建平台:有很多免费的网站构建平台可以选择,例如WordPress、Blogger、Wix等等。2.注册一个账户:注册一个账户,以便能够使用平台上的工具和功能。3.选择一个主题:选择一
2023-06-03

如何在FreeBSD系统上搭建并管理网站或博客

在FreeBSD系统上搭建和管理网站或博客可以通过以下步骤实现:安装Web服务器:在FreeBSD系统中,常用的Web服务器有Apache、Nginx等。可以使用pkg命令安装所需的Web服务器,比如安装Apache可以使用以下命令:sud
如何在FreeBSD系统上搭建并管理网站或博客
2024-04-09

「Cpolar」使用Typecho搭建个人博客网站【内网穿透实现公网访问】

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQ
2023-08-24

基于django的个人博客网站建立(五)

前言之前鸽了两天,今天继续再写点主要内容今天加了个展示照片的功能,就叫他生活记录吧先建表class Record(models.Model): title = models.CharField(max_length=128) c
2023-01-31

在树莓派上搭建WordPress博客网站,并内网穿透发布到公网

✨个人主页:bit me👇 目 录 🐾概述💐安装 PHP🌸安装MySQL数据库🌷安装 Wordpress🍀
2023-08-17

基于django的个人博客网站建立(二)

前言今天主要完成后台管理员登录的状态以及关于文章在后台的处理具体内容首先接上一次内容,昨天只是完成了一个登录的跳转,其他信息并没有保存到session中,今天先完善一下在用户登录时,先设置了一下sessionrequest.session[
2023-01-31

基于django的个人博客网站建立(七)

前言这次在原来的基础上添加或修改一些小功能具体内容1.代码高亮在原来的blog-details.html页面添加下面的代码:2023-01-31

基于django的个人博客网站建立(四)

前言今天主要添加了留言与评论在后台的管理和主页文章的分页显示,文章类别的具体展示以及之前预留链接的补充主要内容其实今天的内容和前几天的基本相似,就是个体力活首先是评论在后台的管理:@authdef view_comment(request)
2023-01-31

基于django的个人博客网站建立(三)

前言今天主要完成的是文章在页面的显示以及评论,留言具体内容首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有的文章对象:def index(request): if request.method == 'GET':
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录