从零开始用flask开发个人博客(实战一)
开始
已实现基本功能:
这两年工作一直在用django,这些日子学习了flask,因此想自己写一个教程,从入门到做出一个比较完整的个人博客,以检验自己所学。
项目所用环境为:python3.7, flask1.1.2,mysql8.0,软件工具为VSCode
github地址:https://github.com/bingyunsky/flask_blog
一、创建虚拟环境
1.使用virtualenv命令创建虚拟环境,文件夹名称为env。 --no-site-packages命令的使用,就不会复制已经存在的第三方安装包。
进入env\Scripts,使用activate命令激活虚拟环境(退出环境命令:deactivate)
二、安装flask
1、安装:pip install flask
2、小例子开始
1) 创建文件夹app和初始文件__init__.py
2) 项目初始化
app/__init.py
1 #-*-coding:utf-8-*- 2 from flask import Flask 3 4 # 创建app应用,__name__是python预定义变量,被设置为使用本模块 5 app = Flask(__name__) 6 7 from app import routes
3) 创建路由模块
app/routes.py 此为主页路由
#-*-coding:utf-8-*- # 从app模块中导入app应用 from app import app # 建立路由,通过路由可以执行其覆盖的方法,可以多个路由指向同一个方法。 @app.route('/') @app.route('/index') def index(): return "Hello world!"
4)在app模块之外创建一个主入口来运行整个项目
myblog.py
#-*-coding:utf-8-*- from app import app # 防止被引用后执行,只有当前模块中才可以使用;参数debug=True指为调试模式 if __name__=='__main__': app.run(debug = True)
5)运行项目python myblog.py,在浏览器中查看http://127.0.0.1:5000/或者http://127.0.0.1:5000/index
现在项目结构应该是这样的:
3、模板
1) 在app文件夹下新建templates文件夹,在templates文件夹下新建index.html,并传递数据
index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>{{ title }}博客</title> </head> <body> <h1>Hello,{{ user.username }}!</h1> </body> </html>
routes.py
#-*-coding:utf-8-*- from flask import render_template # 从app模块中导入app应用 from app import app # 建立路由,通过路由可以执行其覆盖的方法,可以多个路由指向同一个方法。 @app.route('/') @app.route('/index') def index(): title = "子觉的" user = {'username': '子觉'} return render_template('index.html', title="子觉的", user=user)