Flask ==> 目录结构

Flask ==>   目录结构

一:目标

1.要求:

  1. 熟悉Flask的目录结构。

  2. 了解应用,装上新的组件往里面放,改怎么弄?

2.作业:

  1.基于flask实现权限管理

  2.笔记:

    -  flask的请求周期

二:目录结构内容

知识点:

  1.  从全局上了解flask项目的目录结构

  2. flask项目的运行机制

  3.flask框架实现MVC架构

  4.flask-sqlalchemy  操作mysql数据库

流程步骤:

  1.新建项目:blog系统

完成后的目录结构是这样的:非常简单,一个static文件夹,一个templates文件夹,一个py文件,如下:

  2.目录结构重构,引入包管理

1.针对上面的结构,在最上层blog2目录下,做如下操作:

  1.新建一个runserver.py 文件, 作为“项目统一入口文件”

  2. 新建blog2文件夹,把已经存在的 static,templates, blog2.py 移到blog2文件夹下,

  3. 然后分别创建 controller  , model 包(右击blog2, 选择 python packge )。 把blog2.py  改名为 __init__.py  ,

  4.新建setting.py 文件。

现在目录结构如下:

  

这样就相当于一个大工程的结构了:

分析:

  1. 最上层的 blog2 目录是项目名称,一个项目下可以包括多个模块,也就是应用,每个应用下有自己的配置文件,初始化文件,MVC架构。

  2. runserver.py : 与应用模块评级,作为项目启动为文件。  

  3.第二级blog2目录: 模块名称

    controller : MVC 中的 C, 主要存放 视图函数。

    model   : MVC 中的 M , 主要存放 实体类文件,映射数据库表

    templates : MVC 中的V, 主要存放 html 文件

    static : 静态文件, 主要存放 css, js 等文件

    __init__.py : 模块初始化文件, Flask 程序对象的创建必须在 __init__.py   文件里完成, 然后就可以安全的导入引用每个包。

    setting.py  : 配置文件,数据库用户名密码等等

三, 开发代码

1. 先把项目运行起来:

   1. 编写__init__.py文件, 创建项目对象,代码如下:

from flask import Flask

#创建项目对象
app = Flask(__name__)

  2. 在 runserver.py , 添加如下代码

from blog2 import app

@app.route(‘/‘)
def hello_world():
    return ‘Hello World!‘

if __name__ == ‘__main__‘:
    app.run(debug=True)

  3. 运行runserver.py 文件:

然后在浏览器中输入:http://127.0.0.1:5000/,会显示helloworld字样

到这里为止,项目的雏形就可以正常运行了,下面的事情就简单了,添加内容,让项目有血有肉。

2.修改配置文件。

  1. 修改setting.py 文件,添加配置数据库连接信息,如下:

  2.让项目读取配置文件

修改_init__,py : 添加如下内容(红色部分):

# -*- coding: utf-8 -*-
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
#import  os
#print os.environ.keys()
#print os.environ.get(‘FLASKR_SETTINGS‘)
#加载配置文件内容
app.config.from_object(‘blog2.setting‘)     #模块下的setting文件名,不用加py后缀
app.config.from_envvar(‘FLASKR_SETTINGS‘)   #环境变量,指向配置文件setting的路径

#创建数据库对象
db = SQLAlchemy(app)

  3.设计数据库

1.本次练习比较简单,就两个表,一个user表,一个文章表。我们采用python的orm框架flask-sqlalchemy实现表的创建、增删改查功能。

在model文件夹中添加User.py和Category.py文件,内容如下:

1.user.py

from blog2 import db

class User(db.Model):
    __tablename__ = ‘b_user‘
    id = db.Column(db.Integer,primary_key=True)
    username = db.Column(db.String(10),unique=True)
    password = db.Column(db.String(16))

    def __init__(self,username,password):
        self.username  = username
        self.password = password
    def __repr__(self):
        return ‘<User %r>‘ % self.username

2.category.py

from blog2 import db

class Category(db.Model):
    __tablename__ = ‘b_category‘
    id = db.Column(db.Integer,primary_key=True)
    title = db.Column(db.String(20),unique=True)
    content = db.Column(db.String(100))

    def __init__(self,title,content):
        self.title = title
        self.content = content
    def __repr__(self):
        return ‘<Category %r>‘ % self.title
复制代码

  3.创建数据库和表

  

原文地址:https://www.cnblogs.com/zhongbokun/p/8284540.html

时间: 2024-08-30 13:09:36

Flask ==> 目录结构的相关文章

Flask大型程序的目录结构

小型的web程序把代码写在一个文件内即可,flask并没有像Django那样强制目录结构,但是当程序达到一定规模的时候,合理的目录结构组织让开发和维护都更加方便,下面是一种flask的目录结构方式: |-flasky |-app/ |-templates/ |-static/ |-main/ |-__init__.py |-errors.py |-forms.py |-views.py |-__init__.py |-email.py |-models.py |-migrations/ |-te

Day4 - 迭代器&amp;生成器、装饰器、Json &amp; pickle 数据序列化、软件目录结构规范

---恢复内容开始--- 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 需求:列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求把列表里的每个值加1 1 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 b = [] 3 for i in a: 4 b.append(i+1) 5 a = b 6 print(a) 普通青

关于软件目录结构规范———(转自Alex Li)

软件目录结构规范 为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题. 另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性. 我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者.我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费

python学习day4软件目录结构规范

为什么要设计好目录结构? 参考:http://www.cnblogs.com/alex3714/articles/5765046.html "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 1.一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题: 2.另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性: 我是比较偏向于后者的,因为

python 软件目录结构规范

为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题. 另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性. 我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者.我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费了我非常长的时间去

软件目录结构规范

软件目录结构规范 为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题. 另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性. 我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者.我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费

Python基础之软件目录结构规范

设计一个层次清晰的目录结构,就是为了达到这两点: 可读性高:不熟悉项目的人,一眼就能看懂目录结构. 可维护性高:随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好. 目录组织方式: ATM├── bin│   └── start.py├── conf│   └── settings.py├── core│   └── test_main.py├── db│   └── db.json├── docs├── lib│   └── common.py├── log│   └──

为什么要设计好目录结构?

为什么要设计好目录结构?"设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度:1. 一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题.2. 另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性.我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者.我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费了我非常长的时

Python之路-python(装饰器、生成器、迭代器、Json &amp; pickle 数据序列化、软件目录结构规范)

装饰器: 首先来认识一下python函数, 定义:本质是函数(功能是装饰其它函数),为其它函数添加附件功能        原则:        1.不能修改被装饰的函数的源代码.        2.不能修改被装饰的函数的调用方式. 1 def test(): 2 print('test') 3 print(test ) #表示是函数 4 test() #表示执行foo函数 <function test at 0x00595660>#表示的是函数的内存地址test#函数test执行结果 简单的装