从0开始 Flask新闻资讯项目 Day1

Flask新闻资讯项目

1.项目介绍

  • 项目分析
  • 框架搭建
  • 蓝图目录
  • 日志

前后端不分离,局部刷新ajax请求接口,主要业务逻辑目录结构仿照Django

1.1项目分析

掌握:web应用程序开发流程,常见功能实现,Git使用,源码阅读能力

技术栈:Flask Redis+mysql 七牛云 云通信
Gunicorn+Nginx服务器

功能模块:新闻 后台 用户

具体需求:

1.2 Pycharm VCS

.gitignore是git add 忽略文件 写上.idea/ *py[cod] 等等

itcastyinqiaoyin

2.项目配置 数据库配置

2.1 基本配置

创建Config类
数据库Sqlalchemy配置
Redis配置
单独使用表单验证 CSRF CSRFProtect 传入app

2.2 Session保存到redis里

from flask_session import Session

flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方

Session(app) session读取app配置
SESSION_TYPE=‘redis’ session保存在redis
SESSION_USE_SINGER session签名
SESSION_PERMANENT = True默认不过期
过期时间:PERMANENT_SESSION_LIFETIMEs
SESSION_REDIS= StrictRedis(host= ,port=)
app.config[‘SESSION_KEY_PREFIX’] = ‘session:’ # 保存到session中的值的前缀

Redis重复利用率

2.3数据库迁徙配置以及flask-script管理app

from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand

Migrate(app,db)关联数据库app 迁移

3. 抽取项目配置到单独文件

让manage只做程序入口,不关心配置,配置导入,不关心视图函数(蓝图),不关心app创建的相关代码

3.1抽取配置文件

3.2抽取业务逻辑文件

3.3不同环境 配置

部署开发类继承于Config,开发环境下配置
部署生产环境类继承于Config,配置可以不同
测试环境等等多应用环境配置

为了方便可以设置一个配置字典,value是各个环境的类,这样只需要导入字典,再输入相应key就可以取得相应配置

3.4 通过指定配置名字创建对应app

在业务逻辑文件里,定义一个创建app的函数,通过传入的变量,应用不同的环境配置,返沪创建的app

先初始化db = SQLAlchemy()
然后再db.init_app()
在Flask中很多扩展里面都可以先初始化对象,然后再去调用init_app来初始化

3.5 日志简介

日志:追踪软件运行过程,记录运行状态,错误信息,事件也有重要性级别level(开发级别,线上级别)

日志的使用:

展开阅读全文

没有更多推荐了,返回首页