Flask搭建个人博客部分记录(一)

19 篇文章 0 订阅
10 篇文章 0 订阅
  1. 蓝图:
  • 蓝图:用于实现单个应用的视图、模板、静态文件的集合
  • 蓝图是Flask框架应用程序组件化的方法,可以在一个应用内或跨越多个项目共用蓝图,使用蓝图可以极大地简化大型应用的开发难度,也为Flask扩展提供了一种在应用中注册服务的集中化机制
  • 步骤:创建蓝图对象 ;使用蓝图对象注册路由;使用应用注册蓝图对象
  • 通常蓝图文件放在名为handlers目录下,模板文件放到templates目录下
    在这里插入图片描述
    截图来源:Flask笔记(个人博客)
  1. 基础模板文件:templates/base.html
  2. 配置文件:通常 Flask Web 项目的配置文件是 configs.py,它与 app.py 同处于一个目录下,注意的是所有配置项的名字必须为全大写,否则会被忽略
  • BaseConfig: 基础配置类,存储公共配置项
  • DevConfig(BaseConfig): 开发阶段使用的配置类
  • TestConfig(BaseConfig): 测试阶段使用的配置类 在这里插入图片描述
  1. flask-sqlalchemy 实现 模型(Model,即Class类)与数据库表(table)的映射
  2. 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。

在这里插入图片描述
7. linux启动mysql服务命令:$ sudo service mysql start(若后期出现报错:qlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (2002, “Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (111)”),请输入以上代码启动 mysql 服务)
8. 为应用增加环境变量:$ export FLASK_DEBUG=1 FLASK_APP=manage.py(当之后实验出现报错 Error: Could not locate a Flask application. You did not provide the “FLASK_APP” environment variable, and a “wsgi.py” or “app.py” module was not found in the current directory.,请输入以上代码增加环境变量)
这样就不必每次启动应用的时候在命令开始处写 FLASK_APP=manage.py 了
9. flask db migrate 和 flask db upgrade 命令创建迁移文件和执行迁移,每次执行 flask db migrate 命令时,都会生成一个新的版本(Flask-Migrate 实现的数据迁移功能其实就是把数据表的结构信息存储到一个文件中,执行迁移命令即可利用该文件来创建数据表。它还支持撤销版本的功能)
10. Flask Web 应用需要提供 SMTP 服务器地址和端口号,各家的邮箱的服务器地址和端口号是不同的,这个需要上网查询。QQ 邮箱的地址及其端口号是 ‘smtp.qq.com’ 和 25
11. 应用实例需要知道对每个URL的请求要运行哪些代码,所以保存了一个URL到Python函数的映射关系。处理URL和函数之间关系的程序称为路由
12. 在Flask中有两种上下文:应用上下文和请求上下文
在这里插入图片描述
13. Flask通过上下文变量request对外开放请求对象。这个对象非常有用,包含客户端发送的HTTP请求的全部信息。Flask请求对象中最常用的属性和方法如下
在这里插入图片描述
14. 四种请求钩子
在请求钩子函数和视图函数之间共享数据一般使用上下文全局变量g。例如,before request处理程序可以从数据库中加载已登录用户,并将其保存到g.user中。随后调用视图函数时,便可以通过g.user获取用户。

  注册一个函数,在每次请求之前运行:  before request
  注册一个函数,只在处理第一个请求之前运行(可以通过这个钩子添加服务器初始化任务): before first request
  注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行: after request
  注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行: teardown request
  1. 响应有个特殊的类型,称为重定向。这种响应没有页面文档,只会告诉浏览器一个新URL,用以加载新页面。重定向经常在Web表单中使用,重定向的状态码通常是302,Flask使用redirect()函数来生成重定向响应
	from flask import Flask
	@app.route('/')
	def index():
		return redirect('http://www.xxx.example.com')

还有一种特殊的响应由abort()函数生成,用于处理错误,抛出异常

  1. 视图函数的作用:生成请求的响应

  2. Flask提供的render template()函数把Jinja2模板引擎集成到了应用中。这个函数的第一个参数是模板的文件名,随后的参数都是键-值对,表示模板中变量对应的具体值, 如
    在这里插入图片描述
    在这段代码中,第二个模板收到一个名为name的变量

  3. Jinja2提供的部分常用过滤器
    在这里插入图片描述
    在这里插入图片描述

  4. 部分常用控制结构
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  5. 个人对引入(include)和继承(extend)的理解:include在原模版插入小的板块,extend在基模板上进行拓展

  6. 传给url for()的关键字参数不仅限于动态路由中的参数,非动态的参数也会添加到查询字符串中。例如,url for(‘user’, name=‘john’, page=2, version=1)的返回结果是/user/john? page=2&version=1

在这里插入图片描述

  1. 在这里插入图片描述

  2. @property的理解
    在这里插入图片描述
    在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,搭建个人可以分为以下几个步骤: 1. 安装 Flask 框架和相关扩展 2. 创建 Flask 应用程序 3. 设计数据库模型 4. 编写视图函数和模板 5. 部署应用程序 下面我会一步一步为你讲解。 1. 安装 Flask 框架和相关扩展 首先,你需要安装 Flask 框架和相关扩展。可以使用 pip 工具进行安装,命令如下: ``` pip install Flask Flask-WTF Flask-SQLAlchemy ``` 其中,Flask-WTF 是用于表单处理的扩展,Flask-SQLAlchemy 是用于数据库操作的扩展。 2. 创建 Flask 应用程序 在安装完 Flask 框架和相关扩展后,你需要创建一个 Flask 应用程序。可以在一个 Python 文件中创建应用程序,代码如下: ```python from flask import Flask app = Flask(__name__) app.config['SECRET_KEY'] = 'your-secret-key' ``` 其中,`__name__` 表示当前模块的名称,`SECRET_KEY` 是用于保护表单免受 CSRF 攻击的密钥。 3. 设计数据库模型 在创建应用程序后,你需要设计数据库模型。可以使用 SQLAlchemy 来定义模型,代码如下: ```python from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy(app) class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) ``` 其中,`Post` 是一个模型类,表示文章。`id` 是主键,`title` 和 `content` 分别表示文章的标题和内容,`date_posted` 表示文章发布的时间。 4. 编写视图函数和模板 在设计好数据库模型后,你需要编写视图函数和模板。视图函数用于处理用户请求,模板用于渲染页面。 ```python from flask import render_template @app.route('/') def home(): posts = Post.query.all() return render_template('home.html', posts=posts) @app.route('/post/<int:post_id>') def post(post_id): post = Post.query.get_or_404(post_id) return render_template('post.html', post=post) ``` 其中,`home` 函数用于显示所有文章的列表,`post` 函数用于显示单篇文章的内容。`render_template` 函数用于渲染模板。 5. 部署应用程序 最后,你需要部署应用程序。可以使用 Flask 自带的服务器进行测试,也可以使用其他服务器进行部署。 以上就是搭建个人的基本步骤。如果你想了解更多细节,请参考 Flask 官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SimpleZihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值