《Flask Web开发:基于Python的Web应用开发实战》笔记(原创)

内容提要

在学习“狗书”《Flask Web开发:基于Python的Web应用开发实战》的过程中,一直遇到各种各样的坑。该书的第一部分是“Flask简介”,主要介绍的一些基础知识。第二部分是“实例:社交博客程序”,讲的是如何搭建一个社交博客的框架。目前我学到第二部分,回过头来看,觉得按照程序运行的实际逻辑来说明程序的原理,并在这个过程中分析遇到的各种“坑”,也更能让人理解(至少让我自己理解)。

正文

  1. 程序包结构

flask文件夹结构
图1
其中:
app为程序包,Flask程序保存在这个包中
migrations文件夹包含数据库迁移脚本
tests包保存单元测试
requirements文件夹中记录程序的依赖
config.py是程序的配置文件
manage.py是程序的运行文件,用于启动程序即程序的其他任务


app包结构
在这里插入图片描述
其中:
auth为保存专门用于认证的auth蓝本
main为保存main蓝本的包
static文件夹用于保存静态文件,例如HTML代码中引用的图片、 JavaScript 源码文件和 CSS
templates用于保存网页的模板


蓝本文件夹结构(以auth文件夹为例,main蓝本等不再赘述)
在这里插入图片描述
蓝本的细节就不在此赘述,在flask框架中用到蓝本,可以对不同的程序功能使用不同的蓝本,这是保证程序整齐有序的办法。(想想把所有功能都写在一起会多么混乱)。这里说明一下到蓝本的程序运行原理:app/auth/views.py 模块引入蓝本,然后使用蓝本的 route 修饰器定义与认证相关的路由,然后再渲染views中设定的网页模板。看起来是不是如果程序能运行到蓝本这一步,我们就可以对网页进行操作了。
2. 运行说明
在运行程序的时候,我们在虚拟环境下,通过如下命令来完成。由此可见,程序的运行是由manage.py来开始的。

(venv) $ python manage.py runserver

那么,我们来看看这个manage.py吧,期待不期待?兴奋不兴奋?

#!/usr/bin/env python
import os
COV = None
if os.environ.get('FLASK_COVERAGE'):
    import coverage
    COV = coverage.coverage(branch=True, include='app/*')
    COV.start()

if os.path.exists('.env'):
    print('Importing environment from .env...')
    for line in open('.env'):
        var = line.strip().split('=')
        if len(var) == 2:
            os.environ[var[0]] = var[1]

from app import create_app, db
from app.models import User, Follow, Role, Permission, Post, Comment
from flask_script import Manager, Shell
from flask_migrate import Migrate, MigrateCommand

app = 
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值