项目地址

https://github.com/Young157/flask_demo

一. 在GitHub上创建仓库,配置git与ssh免密登录。

git init  # 初始化git
git config --global  user.name "GitHub用户名"
git config --global user.email "GitHub邮箱"

此步骤会要求输入一些信息,可以直接默认即可,当看到下图就好了


之后会生成两个文件,路径一般在User文件夹下的.ssh文件夹里。

  • id_rsa:私钥,存放在本地的
  • id_rsa.pub:公钥,上传到GitHub上,步骤如下:

点击GitHub头像 >> Settings >> SSH and GPG keys >> New SSH key >> 输入Title(自定义)与Key(公钥)

这样SSH就配置好了,之后再操作GitHub就不需要登录密码了。


二.flaks主程序基本结构

此代码是显示一个flask最基本的结构,右键运行就可以在网页输入172.0.0.1:9988就可以在浏览器上返回hello world

from flask import Flask# 创建flask对象,传入参数__name__
app = Flask(__name__)# 使用路由装饰视图
@app.route('/')
def index():return 'hello world'  # 返回显示在网页上的内容if __name__ == '__main__':# 运行app,指定端口,和debug=True:表示当代码修改后框架自动重启app.run(port=9988, debug=True)

三.创建项目基本结构上传到GitHub

git add .
git commit -m'备注信息'
git push "GitHub仓库SSH路径"

然后在GitHub仓库就能看到自己上传的文件夹了,由于设置了ssh,所以push提交的时候就不需要输入GitHub账号密码了
注意: 在实际开发中,应该尽量多使用commit,这样就相当于每个功能或步骤都在GitHub上有个备份,当想还原版本的时候,就可以很清楚的知道自己要还原到哪了,哪个版本又做了些什么。


四.更改项目为MVT结构

MVT是flask web框架开发的核心。

  • M(models):存放所有的模型类
  • V(views):里面是视图函数和路由器
  • T(templates):存放的是所有的HTML模板文件

视图文件夹结构(V)

操作详情:

  1. 在views下的 __init__文件里创建蓝图对象,将视图文件名(index)传入进去
  2. mian.py里的视图函数剪切到views下的index.py
  3. index文件里导入蓝图对象,用蓝图对象创建视图函数的路由
  4. main.py里导入蓝图对象,与app绑定

数据库模型文件夹(M)

1.添加模型文件


操作详情:

  1. moewls下的 __init__文件里创db对象
  2. moewls下的 user文件里创模型类
  3. 创建配置文件config.ini文件
  4. main.py文件里导入db,将app初始化:db.init_app(app)
  5. 对app进行配置:app.config.from_pyfile("config.ini")
    config.ini文件详情
# 数据库相关配置
# 设置数据库的链接地址
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://MySQL用户名:MySQL密码@localhost:3306/数据库名'
# 是否开启追踪数据库的改变
SQLALCHEMY_TRACK_MODIFICATIONS = True
# 打印数据库执行的语句
SQLALCHEMY_ECHO = True

2.配置数据库迁移

3. 修改后需要使用python main.py runserver -p 8899来运行程序
 格式:python版本 程序入口文件名 runserver -p 端口号

4. 第一次使用数据库迁移时初始化python main.py db init,会生成如下文件,但此时数据库中还没有数据表


5. 使用python main.py db migrate -m 'init',在versions里生成了一个迁移文件,在数据库中创建了一张版本控制记录表alembic_version


6. 生成数据表,表名与表结构与models里模型类的结构一致


7. 数据库插入数据为后面登录做准备:insert into user values(1,'996','andox','666','','996就是一种生活方式');

HTML模板文件(T)

  1. 添加页面模板文件夹,里面方入模板文件,在项目根目录下放入静态文件static
  2. 在视图函数中,从数据库查询数据用jinja2语法替换模板中的内容

3.用jinja2语法修改模板文件

4.页面展示从数据库查询出来的消息

完成登录页面

1.添加视图函数

2.判断用户名密码

3.登录状态保持

3.1 在config.ini 里面添加秘钥配置:SECRET_KEY = 'KJHKgjhvOVljhgGL'此值随意,越乱越长更安全

3.2 登录页添加session,如果用户名密码正确,给session添加一个值,例如:session['user_id'] = user.user_id

3.3 在主页判断此值是否存在,存在,数据库查询用户信息返回主页,不存在重定向登录页面

4.登出功能

1.在主页添加登出按钮

2.新增登出视图,清空session,跳转到登录页面

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200918014133227.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY1MTI5MQ==,size_16,color_FFFFFF,t_70#pic_center

项目中用到的命令

1.pip相关

pip install “包名” -i “pip加速镜像网址”

pip加速镜像网址

  • 阿里云 http://mirrors.aliyun.com/pypi/simple/
  • 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
  • 豆瓣(douban) http://pypi.douban.com/simple/
  • 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
  • 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

2.虚拟环境相关

名称 虚拟环境基本命令
创建虚拟环境 mkvirtualenv -p python3 虚拟环境名
查看已创建的所有虚拟环境 workon
进入虚拟环境 workon 虚拟环境名
查看当前虚拟环境下的包 pip list
在虚拟环境里安装包 pip install 包名
退出虚拟环境 deactivate
删除虚拟环境 rmvirtualenv 虚拟环境名

3.git相关

名称 git基本命令
初始化本地库 git init
将工作区的“新建/修改”添加到暂存区 git add .
将暂存区的内容提交到本地库 git commit -m’备注信息’
提交到远程仓库 git push
从远程仓库拉取 git pull
克隆远程仓库代码 git clone 远程仓库地址
查看工作区、暂存区的状态 git status
查看历史提交 git log
比较差异 git diff

项目中用到的模块

alembic 1.4.3
click 7.1.2
Flask 1.1.2
Flask-Migrate 2.5.3
Flask-Script 2.0.6
Flask-SQLAlchemy 2.4.4
itsdangerous 1.1.0
Jinja2 2.11.2
Mako 1.1.3
MarkupSafe 1.1.1
pip 20.2.3
PyMySQL 0.10.1
python-dateutil 2.8.1
python-editor 1.0.4
setuptools 49.6.0
six 1.15.0
SQLAlchemy 1.3.19
Werkzeug 1.0.1
wheel 0.35.1


thank you

web框架之flask相关推荐

  1. FastAPI - 一款新型的 Python Web 框架(对比 Flask)

    近日曾想尽办法为 Flask 实现 Swagger UI 文档功能,找到的实现方式基本上是 Flask + Flasgger, 记录在 Flask 应用集成 Swagger UI.然而不断的 Goog ...

  2. python框架flask系列(2),Python的Web框架之Flask(2)

    路由参数 默认string,可以指定参数的类型限定,限定参数为int @app.route('/user/') def user_info(user_id): return 'hello{}'.for ...

  3. Python web框架:flask视图函数

    1.Django中的CBV模式 2.Flask中的CBV和FBV def auth(func):def inner(*args, **kwargs):result = func(*args, **kw ...

  4. Flask框架(1.flask概述,Windows配置 virtualenv虚拟环境步骤和路由以及视图函数的定义)

    框架:      软件框架,指的是为了实现某个业界标准或者完成特别基本任务的软件组件规范,也指为了实现某个软件组建规范时,提供规范所要求之基础功能的软件产品.       框架的功能类似于基础设施,提 ...

  5. Python面试题大全(三):Web开发(Flask、爬虫)

    目录 Web Flask 140.对Flask蓝图(Blueprint)的理解? 141.Flask 和 Django 路由映射的区别? Django 142.什么是wsgi,uwsgi,uWSGI? ...

  6. 【自动化运维新手村】Web框架序篇

    [摘要] 首先我们需要先想清楚,为什么一定要学Web框架,有的朋友会觉得运维中最常用的应该是脚本,我只要脚本写的溜,能提高工作效率就好了.但如果有一天你的同事也遇到了相同的场景,那你的脚本要直接拷贝给 ...

  7. Python Web框架比较,选择对的框架让开发更便捷

    Python程序员有很多很好的选择来创建Web应用程序和API:Django,Weppy,Bottle和Flask引领潮流. 如果正在开发一个Web应用程序并且已经选择使用Python作为构建它的语言 ...

  8. 手撸web框架即引入框架思想,wsgierf模块,动静态网页,模板语法jinja2,python三大主流web框架,django安装,三板斧...

    手撸web框架 web框架 什么是web框架? 暂时可理解为服务端. 软件开发架构 C/S架构 B/S架构 # 后端 import socketserver = socket.socket() # 不 ...

  9. python高性能web框架排行榜_目前最受欢迎的12个Python web框架,你用过几个?

    1.Django Django是一个开源的Web应用框架,由Python写成,支持许多数据库引擎,可以让Web开发变得迅速和可扩展,并会不断的版本更新以匹配Python最新版本,如果是新手程序员,可以 ...

最新文章

  1. 使用 LSTM 进行多变量时间序列预测的保姆级教程
  2. 数据结构-直接插入排序讲解(C语言)
  3. 记一次简单的破解程序(逆向)
  4. 对股票进行可视化分析
  5. 百度万年历API 获取节假日和工作日调休
  6. 个推科普漫画,解读《女心理师》中的智能语音识别系统
  7. 深入Unreal蓝图开发:自定义蓝图节点(中)
  8. 后退一步 小程序_微信小程序:如何利用navigateBack退出小程序
  9. 小米删除了文件无网络无服务器,小米手机里的文件删了怎么恢复?超详细解决方法...
  10. 用计算机怎么计算税率表,5000元新个税计算器公式税率表
  11. DCI format 5A相关学习
  12. 用Python爬取微博热搜数据
  13. 46、万维网之一(应用层)
  14. FC游戏修改教程(hack)小白文。
  15. 瑞芯微RK1808开发板之进入系统
  16. 报错:“java.lang.RuntimeException:Some file crunching failed,see logs for details”
  17. ORACLE的CBO及表分析
  18. Python学习笔记(二)——使用Eclipse开发Python程序
  19. MyBatis中的二级缓存
  20. 大数据时代的计算机信息处理技术

热门文章

  1. C# RSA 公钥私钥生成方法
  2. 《C语言程序设计实践》————如何买玫瑰?(贪心思维)
  3. Python技能树和CSDN Markdown编辑器的测评 20212101陈雨扬
  4. 取代C++?谷歌开源编程语言Carbon,网友评价太真实了
  5. X里、X迅、X团、X度、X手的面试总结
  6. 如何识别翻新手机、辨别行货水货!(包括电池、充电器、耳机方面的鉴别) - 诺基亚3230论坛 - 诺基亚手机论坛 —糯米智能手机论坛|最专业的诺基亚手机交流论坛 -
  7. 医疗健康数据科学家研修班
  8. 博士申请 | 新加坡国立大学Robby T. Tan教授招收CV方向全奖博士/博后/访问学生
  9. webconfig machineKey
  10. mcrypt加密解密