这里搭建一个基本的Flask框架的项目结构
项目地址:https://codechina.csdn.net/sabian2/myflask.git

git clone https://codechina.csdn.net/sabian2/myflask.git

选择好的10月20日的带初始框架的最后一个版本

项目结构解析

myflask是项目目录名,需要把它mark 为source root,下面的根据目录的缩进看层次。

manage.py

项目的主运行文件,只要在目录下的命令行使用

python manage.py

即可启动项目

.gitignore

git版本控制忽略的文件

requirements.txt

项目的依赖包名称

settings.py

运行的设置文件

mainapp

一个应用,相当于拆分的网页功能

static

静态文件目录

templates

模 板文件目录

user.html

一个用户的模板文件

views

视图文件目录

user_view.py

用户视图类

models

模型文件

user_model.py

用户模型类

utils

一个通用的工具包

文件详情

settings.py

class Dev():ENVIRONMENT='development'DEBUG=TrueSQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:sa123456@localhost:3306/db1?charset=utf8'SQLALCHEMY_TRACK_MODIFICATIONS = TrueSQLALCHEMY_COMMIT_ON_TEARDOWN = TrueSQLALCHEMY_ECHO = True

SQLALCHEMY_DATABASE_URI:数据库的资源定位标识
格式是
数据库名称+驱动://用户名:密码@地址:端口/数据集名称?附加参数
SQLALCHEMY_TRACK_MODIFICATIONS :数据库是可扩展的
SQLALCHEMY_COMMIT_ON_TEARDOWN :回收资源时自动提交数据
SQLALCHEMY_ECHO :控制台显示数据库语句

mianapp/__ init__.py

from flask import Flask
import settings
app=Flask(__name__)
app.config.from_object(settings.Dev)


一般都以这种方式创建app,
app.config.from_object(settings.Dev)
从settings.py文件中导入设置

mainapp/templates/user.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>用户测试</title>
</head>
<body><ul>{% for k,v in cookies.items() %}<li>{{ k }}:{{ v }}</li>
{% endfor %}
</ul>
<p>{{ base_url }}
</p>
</body>
</html>

模板页面显示的是Jinja2语法的格式
pycharm里在如下位置调整自己项目的模板语法,输入时会有提示

mainapp/views/user_view.py

用户视图

from flask import Blueprint
from flask import request,render_template
from models.user_model import UserModel
from models import db
blue=Blueprint('userBlue',__name__,template_folder='templates')@blue.route('/login',methods=['GET','POST'])
def login():data={'cookies':request.cookies,'base_url':request.base_url}db.drop_all()db.create_all()user=UserModel()user.name='xx'user.phone='12345678910'user.auth_key='123456'db.session.add(user)return render_template('user.html',**data)

这里定义了一个蓝图,通过蓝图配置路径,内部做了一个数据库的初始化,并添加了数据
最后渲染了模板

models/init__.py

# 在这里创建db对象,然后在模型类中被导入from flask_sqlalchemy import SQLAlchemy
db=SQLAlchemy()

models/user_model.py

from models import dbclass UserModel(db.Model):id = db.Column(db.Integer,primary_key=True,autoincrement=True)name=db.Column(db.String(30),nullable=False)auth_key = db.Column(db.String(100),nullable=False)phone=db.Column(db.String(11),unique=True)

这里建立一个模型,和数据库的表是对应的

manage.py

from mainapp import app
from mainapp.views import user_view
# from flask_script import Managerfrom models import dbif __name__ == '__main__':# 注册蓝图路由app.register_blueprint(user_view.blue,url_prefix='/user')db.init_app(app)# manager=Manager(app)# manager.run()app.run(host='localhost',port=5000,debug=True)

上面的是导入的包
下面的是运行程序的步骤
app.register_blueprint注册蓝图路由,并添加前缀
db.init_app(app)启动数据库
app.run(host=‘localhost’,port=5000,debug=True),以括号内的配置启动
因为flask高版本缺少一部分文件,所以flask-script插件的方法已经用不了了。

运行程序

直接运行manage.py文件即可,或在命令行输入

python manage.py

启动后进入做的页面可以看到

控制台会显示一些信息


2021-10-20-Flask-01- 基本运行框架及配置文件相关推荐

  1. 实战:部署一套完整的企业级高可用K8s集群(成功测试)-2021.10.20

    更新时间 2022年10月14日18:17:39 实验环境 实验环境: 1.win10,vmwrokstation虚机: 2.k8s集群:3台centos7.6 1810虚机,2个master节点,1 ...

  2. 2021.10.20市场行情煤炭股集体跳水!

    在交易市场中,所有的东西都是假的,唯有价格是真的 我可以没有女朋友,但是不能接受没有股票的世界. 世界上还有什么比投机更伟大的事业呢? 市场观点:煤炭股的趋势并没有坏,也就是说缺煤应该到了明年的一季度 ...

  3. 2021.10.20股票小计

    今日大盘基本上涨幅不大,上证收跌0.17点,深证收跌0.33点,创业板收跌0.37点,自己持有的股票方面,证券板块今天下跌0.44点,华林证券收跌1个点,今天补了500股,慢慢建仓,钢铁方面,中信特钢 ...

  4. 【每日英文】2021.10.20

    compatibility n. 共存:和睦相处:(计算机设备的)兼容性 6.It's called Turing compatibility. 它叫做图灵兼容性. 7.This compatibil ...

  5. Functional Options: Go中实现优雅的API的方法 | Gopher Daily (2021.10.22)

    每日一谚:学会不要马上增加太多的功能,要把核心思想建立起来并进行测试 - Leah Culver Go技术生态 Go很大可能在go 1.19版本中支持编译器的FGO(feedback-guided o ...

  6. 零基础 Ubuntu 20.04.01 下搭建51单片机开发环境[开源编译器SDCC]

    原创首发于CSDN,转载请注明出处,谢谢! 文章目录 为何会在Linux下开发单片机 个人系统环境与所用开发板 安装开源编译器 sdcc STC MCU ISP 闪存工具 stcgal 的安装 单片机 ...

  7. 【财经期刊FM-Radio|2021年03月01日】

    title: [财经期刊FM-Radio|2021年03月01日] 微信公众号: 张良信息咨询服务工作室 [今日热点新闻一览↓↓] 2月份中国制造业PMI季节性回落,经济仍保持稳定恢复势头 茅台集团去 ...

  8. (转自http://www.blogjava.net/moxie/archive/2006/10/20/76375.html)WebWork深入浅出

    (转自http://www.blogjava.net/moxie/archive/2006/10/20/76375.html) WebWork深入浅出 本文发表于<开源大本营> 作者:钱安 ...

  9. 2021.10.25-10.31 AI行业周刊(第69期):AI进化之路

    本周<Opencv基础及AI项目实战>以及<Pytorch模型推理及多任务通用范式>两门课程已经完结. 两门课程中,针对所有完成作业的同学,都颁发了毕业证书. 并且对于完成比较 ...

最新文章

  1. python 垃圾回收器_Python 垃圾回收机制详细
  2. python urllib.request 爬虫 数据处理-python之爬虫(三) Urllib库的基本使用
  3. Jenkins 基本概念与简介
  4. python连接oracle详细教程_[宜配屋]听图阁
  5. 如何跳过或去除“非正版Windows系统“信息
  6. VMAXe资源配置只用4分钟
  7. git 编辑提交的技巧
  8. Atitit 音频资料与音乐库管理系统功能 目录 1. 通用功能区 2 1.1. 批量处理功能文件夹遍历 2 1.2. Zip文件遍历与读取 2 1.3. Rar文件遍历与读取 2 1.4. She
  9. 什么是驻点和拐点_拐点和驻点的区别有哪些
  10. XJTU-SY滚动轴承加速寿命试验数据集
  11. javascript 图像二值化处理
  12. 用Visual C#.NET编写服务器日期控件
  13. 网秦上市前夕被央视曝光恶意吸费 网秦飞流否认
  14. 人民日报海外版总编辑詹国枢谈新闻写作技巧:五句话妙手著文章
  15. Intellij IDEA 提示cannot find declaration to go to 解决方法
  16. moses 编译_moses工具的配置详解
  17. 实时监控linux的日志命令
  18. L1正则化及其稀疏性的傻瓜解释
  19. 物联网中的“网”正在经历一次“脱胎换骨”,不仅洞察人性,还将修炼成精...
  20. SecureCRT乱码的问题

热门文章

  1. 【Android安全】AOSP与GMS | 安卓开源
  2. 【C++实现】编译原理 免考小队 FIRSTVT集生成算法
  3. VS2017中英文切换设置
  4. 114 西崖 柳成龍
  5. 如何收看2020年夏季东京奥运会?
  6. mysql的binlog太大太多占用大量磁盘的解决
  7. 【JZOJ A组省选】词典
  8. SpringBoot+redis实现用户或者ip恶意单位时间内访问
  9. Ubuntu安装以及简单设置
  10. 开源项目学习:cJSON库的学习和使用(上)---以天气JSON数据为例