首页 > 其他分享 >每周总结2

每周总结2

时间:2024-07-20 20:52:05浏览次数:11  
标签:总结 __ name 每周 flask app Flask 外卖

今天测试 没过 

后端代码出问题了nnd

安装相应的python 包

# 用于flask在使用ORM模型操作数据库
pip install flask-sqlalchemy
# Python操作数据库的驱动程序
pip install pymysql
# 对密码加密和解密
pip install cryptography
# 用于将ORM模型的变更同步到数据库中
pip install flask-migrate
1
2
3
4
5
6
7
8
config.py文件
在根目录下,常见一个config.py的python文件,用来存放配置项。

class BaseConfig:
SECRET_KEY = 'linql_test'
SQLALCHEMY_TRACK_MODIFICATIONS = False

# 开发环境
class DevelopmentConfig(BaseConfig):
# 配置连接数据库
HOSTNAME = '192.168.3.5' #服务器地址
PORT = 3306 #默认端口号
USERNAME = 'root'
PASSWORD = 'root'
DATABASE = 'pythonbbs' #数据库名
SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"

# 测试环境
class TestingConfig(BaseConfig):
# 配置连接数据库
HOSTNAME = '192.168.3.5' # 服务器地址
PORT = 3306 # 默认端口号
USERNAME = 'root'
PASSWORD = 'root'
DATABASE = 'pythonbbs' # 数据库名
SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"

# 生产部署环境
class ProductionConfig(BaseConfig):
# 配置连接数据库
HOSTNAME = '192.168.3.5' # 服务器地址
PORT = 3306 # 默认端口号
USERNAME = 'root'
PASSWORD = 'root'
DATABASE = 'pythonbbs' # 数据库名
SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"
在app.py中,绑定配置

from flask import Flask
import config

app = Flask(__name__)
# 引入开发环境
app.config.from_object(config.DevelopmentConfig)


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


if __name__ == '__main__':
app.run()
exts.py文件
在根目录里创建exts.py文件,主要用来存放一些第三方插件的对象。
如:SQLAlchemy对象、Flask-Mail对象等。
目的,是为了防止循环引用。

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
1
2
回到app.py中,然后导入db变量,再通过db.init_app(app)完成初始化。

from flask import Flask
import config
from exts import db

app = Flask(__name__)
# 引入开发环境
app.config.from_object(config.DevelopmentConfig)
# 初始化db
db.init_app(app)

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


if __name__ == '__main__':
app.run()
blueprints模块
通过蓝图来模块化,创建一个blueprints的包,用于存放蓝图模块。
在项目名称上右击,New->Python Package
并在,blueprints下,分别创建名为:cms、front和user的python文件


在cms.py中创建蓝图对象

from flask import Blueprint
bp = Blueprint("cms",__name__,url_prefix="/cms")
1
2
在front.py中创建蓝图对象

from flask import Blueprint
bp = Blueprint("front",__name__,url_prefix="")

在user.py中创建蓝图对象

from flask import Blueprint
bp = Blueprint("user",__name__,url_prefix="/user")
1
2
创建了蓝图对象,并指定了url前缀,因front是面向前台的,所以url为空
创建蓝图对象后,还需要在app.py中完成注册。

 

一、Flask后端接口技术

        Flask是由python开发的轻量的web框架,小巧,灵活,一个脚本就可以启动一个web项目。

        Flask的程序思路可以从点餐平台的点餐流程说开去。

1、由点餐说到flask返回页面内容

        说到点餐,一般是在饿了吗或者美团这个平台上选择你喜欢的菜品,在这个平台上面集中了很多商家的特色食品,凉菜、热菜及特色菜应用尽有。你点过餐了以后,你只需要等待外卖小哥把订餐送到你的手中就可以了。然而,外卖小哥接单后,需要到指定的餐馆购买指定的食品,如我点了一家“黄焖鸡”主题店的“大份黄焖鸡米饭”,外卖小哥就要到指定的“黄焖鸡”主题店购买到指定的“大份黄焖鸡米饭”后,马不停蹄地来到顾客面前来送餐,外卖小哥接单的时候,有的是携带着顾客的要求,“不吃辣,不吃香菜”等要求,回来送到顾客手中的时候,一定是一碗大份的黄焖鸡米饭。具体流程如下图所示。


        flask编程程序的思路与我们日常点餐的流程是一致的。这里的Flask程序就可以理解成点餐平台,在点餐平台上有很多的菜品,在实现python程序时,调用主程序会使name==”main”语句,这表明name中不光只有main,可能还有其它进程,只有name的进程名称是main时,才会触发主程序的执行。那么name中的名字就可以形象地理解成各中特色的菜单,Flask平台中把name包裹起来,就相当于把菜单上传到到点餐平台中。然后点餐平台就可以调用外卖小哥对客户的点餐进行接单和跑单。代码如下。

#导包
from flask import Flask
#相当于把菜单整合到平台中
app=Flask(__name__,template_folder="myfolder")
#调用主程序
if __name__=="__main__":
#相当于app理解成外卖小哥,代替本人去购餐送餐
app.run()
        目前,上面的代码没有实现点餐,只有点过餐了,外卖小哥才会有目地性的去跑,现在相当于的哥没有乘客时的瞎转,一直在寻找着乘客,代码中没有指定具体点餐内容的flask就相当于外卖小哥没有接单时,在漫无目的的等待。只有客户有新的订单,外卖小哥接到单后,就会到指定的地点购餐,然后把购得的餐再返回给客户。点餐的实现就是限定了外卖小哥只能到指定的地点进行购买指定的餐饮,不然客户是不能接受付款的。Python需要一个技术实现特定条件限定的方法,即满足只有黄焖鸡店才能购买的黄焖鸡米饭。实现这个技术的方法在Python中使用装饰器即可以做到,装饰器可以实现满足一定函数要求的内容才能访问这个页面。如访问百度页面,只有满足输入“www.baidu.com”这样的网址才能访问百度页面。因此,装饰器的技术只需限定只有某个地址才能访问相关的页面,其他的地址是不能访问此页面的。flask中提供的路由技术实现了这样的需求。这样,通过@app.route指定具体的地址去做什么样的事情就可以了。@app.route就是修饰def方法的路由。在def修饰的方法中必须返回内容相当于返回的餐饮,如是程序员中最精典的程序“Hello World”,“你好,世界”展现了程序员拥抱世界的态度。

标签:总结,__,name,每周,flask,app,Flask,外卖
From: https://www.cnblogs.com/wcy1111/p/18313768

相关文章

  • java报告第三周总结
    本周的学习内容为整个第四章的内容,学习中感觉知识点既多又杂,故在总结时尽量选用重要的或高度概括的知识点。面向对象语言特点:封装性、继承、多态类:类是java程序的基本要素,一个java程序就是由若干个类所构成,类是java语言中最重要的数据类型,类声明的变量被称为对象变量类、对象、......
  • 暑假第三周总结(7.15-7.20)
    这周做了什么继续学习JAVA,做出了城堡游戏点击查看代码//RoompackagecastleV3;importjava.util.HashMap;publicclassRoom{ privateStringdescription;privateHashMap<String,Room>exits=newHashMap<String,Room>();publicRoom(String......
  • 第三周总结
    学习进度:(1)阅读完《大道至简》第三章以及第四章一部分,第三章讲了团队缺乏的不只是管理,讲了如何做一位管理者,制度的一些问题,还有分工的重要性,管理并不等同于做伯乐。在第四章的阅读部分,告诉我们不要要求你的客户按照你的方式来明白你的东西,要以客户的角度来让客户明白你的东西,要注......
  • 【python】错误 SyntaxError: invalid syntax的解决方法总结
    【python】错误SyntaxError:invalidsyntax的解决方法总结在Python编程中,SyntaxError:invalidsyntax是一个常见的错误,通常表示Python解释器在尝试解析代码时遇到了语法错误。这种错误可能由多种原因引起,包括拼写错误、缺少关键字、不恰当的缩进等。本文将深入探讨......
  • 每周总结
    在过去的一周里,我承担了安装和配置Zookeeper,并连接HBase的任务。这是我首次深入接触分布式系统的组件,对我而言是一次宝贵的学习和实践机会。首先,我从Zookeeper的官方网站下载了最新版本,并按照安装文档进行解压和配置。在配置过程中,我遇到了权限问题,Zookeeper的dataDir目录默认设......
  • hadoop每周六总结
    本周的Hadoop工作进展较为顺利,通过解决几个关键问题和进行系统优化,显著提升了集群的稳定性和性能。以下是对本周工作的总结:1.集群维护与优化本周,我们对Hadoop集群进行了例行维护,重点优化了集群的性能和稳定性。通过对namenode和datanode的性能进行监控和分析,我们发现了几个性能......
  • 第三次小学期总结
    今天完成了hadoop测验,但是没有成功提交,因为我在前端和后端传志上出现了问题,没有成功将值从前端传到后端,导致没有实现本次测验,心里还是很失落的。历经千辛万苦,我终于成功配置好了Hadoop、Hive和YARN。这些大数据处理工具的配置过程不仅耗费了大量的时间和精力,还需要不断地调试和解......
  • Hadoop学习总结
    今天建民老师对我们进行了小学期20天的Hadoop学习进行了测验,我只实现了数据库的导入,没完成数据的插入,会继续学习Hadoop。在学习Hadoop的过程中,我深入研究了其核心组成部分之一——Hadoop分布式文件系统(HDFS)。HDFS作为Hadoop生态系统的重要组成部分,其设计和工作原理让我大开眼界。......
  • 干货| Python代码性能优化总结
    本文会介绍不少的Python代码加速运行的技巧。在深入代码优化细节之前,需要了解一些代码优化基本原则。第一个基本原则:不要过早优化很多人一开始写代码就奔着性能优化的目标,“让正确的程序更快要比让快速的程序正确容易得多”。因此,优化的前提是代码能正常工作。过早地进......
  • 第三周总结
    学习时间:每天3h代码量:每日300行今日进行放假的测试石家庄铁道大学2024年夏季  2022级课堂测试试卷—Hadoop数据库应用课程名称:大型数据库应用技术 任课教师:王建民  考试时间:实现为止分钟  一、    测试题目1、完成科技查新基本信息填报功能,基本信息如下所示......