Flask开发简易网站疑难点梳理

news/2024/11/8 16:52:09/

文章目录

  • 整体总结
  • 创建项目独立的python环境
    • windows下python独立环境目录结构
    • linux下python独立环境目录结构
  • 大概需要安装的第三方库
  • 使用websockt实现python代码与html界面的通讯
    • 界面F12中看到提示连接成功后立马连接关闭。
  • linux下数据库查询异常
  • 初次登录web的时候背景图片和css不起作用

整体总结

Flask是python的web框架, 首先python本身开发效率就高,再因为Flask是轻量级的,相比Django容易很多。

创建项目独立的python环境

部署python项目时减少依赖包遗漏的情况,使用venv模块为每个项目创建独立的python环境,实现依赖的隔离。
在工程目录下运行:(xxxxxx是运行环境目录)

python -m venv xxxxxx

windows下python独立环境目录结构

在这里插入图片描述
安装第三方python库和启动我们的python项目的时候都需要先启动python独立环境,运行:
./env/Scripts/activate.bat

linux下python独立环境目录结构

在这里插入图片描述
启动独立环境:

source ./env_linux/bin/activate
关闭独立环境:
deactivate

大概需要安装的第三方库

在这里插入图片描述

使用websockt实现python代码与html界面的通讯

python:

@sockets.route('/message')
def message(msg):# 1. 判断是否为Websocket请求,http不包含wsgi.websocketws = request.environ.get('wsgi.websocket')if not ws:return 'need use websocket'# 此处连接成功dict_value={"msg":"xxxxxxx"}ws.send(json.dumps(dict_value))

html中js

//简化示例
var ws = null;
if ('WebSocket' in window) {ws = new WebSocket(url);
}
ws.onclose = function () {
//todo 连接关闭,处理如重连
};
ws.onerror = function () {
//todo
};ws.onopen= function () {
//todo 连接成功
};ws.onmessage = function (event) {var response = JSON.parse(event.data);//todo
};

界面F12中看到提示连接成功后立马连接关闭。

网上查是Flask版本过高引起的xxx不匹配问题。把Flask降低版本:

pip install Flask==1.1.2

linux下数据库查询异常

把db调用放到with app.app_context()里。


###flask和socket创建###
app = Flask(__name__,static_url_path="/static",static_folder="static",template_folder="templates")
app.secret_key = ';xxxxxxfsfs'
sockets = Sockets(app)
from flask_cors import *
CORS(app, supports_credentials=True)###配置数据库
basedir = os.path.abspath(os.path.dirname(__file__))+"/static/db"
app.config["SQLALCHEMY_DATABASE_URI"] = 'sqlite:///'+os.path.join(basedir, 'xxxx.sqlite')
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
db = SQLAlchemy(app)##数据库表1信息
class xxxxx(db.Model):id = db.Column(db.Integer,primary_key=True, autoincrement=True)msgType = db.Column(db.String(8))#最短是8否则建表不成功checkFrom = db.Column(db.String(16))date = db.Column(db.Integer)type = db.Column(db.Integer)def __repr__(self):return self.checkFrom+"_"+str(self.date)
##数据库表2信息
class yyyyy(db.Model):id = db.Column(db.Integer,primary_key=True, autoincrement=True)msgType = db.Column(db.String(8))#最短是8否则建表不成功checkFrom = db.Column(db.String(16))date = db.Column(db.Integer)type = db.Column(db.Integer)def __repr__(self):return self.checkFrom+"_"+str(self.date)
if __name__ == '__main__':with app.app_context():db.create_all()#统一建表

初次登录web的时候背景图片和css不起作用

F12查看有报错,提示重定向过多。
原因是如下代码有问题:下载static下的东西的时候被异常重定向到了login

@app.before_request
def before_reuqest():if request.path == '/login':return Noneif request.path == '/register':return Noneuser_info = session.get('user_info')if user_info:return Nonereturn redirect('login')

修改成:

@app.before_request
def before_reuqest():if request.path == '/login':return Noneif request.path == '/register':return Noneuser_info = session.get('user_info')if user_info:return Noneif request.path.startswith("/static"):#过滤掉staticreturn Nonereturn redirect('login')

http://www.ppmy.cn/news/258415.html

相关文章

电视直播怎么显示服务器无法响应,四招让你的网络机顶盒看电视不再卡顿!

1、直播服务器压力大 据笔者的调查,大多数情况下网络机顶盒看电视直播总是卡是由直播服务器压力大引起的,尤其是在晚上的黄金时间段或者周末,很多朋友看电视直播都会感觉到有明显的卡顿,需要缓冲一段时间才能继续播放,…

skyworth电视怎么显示服务器异常,skyworth电视怎么看网络电视

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 skyworth电视怎么看网络电视的步骤方法: 1、在智能电视机或网络电视盒子的应用界面里找到内置的浏览器,点击浏览器打开后,用遥控器或自接的USB鼠…

用什么软件测试电视盒子真假,网络机顶盒哪个好?专业盒子测评告诉你哪款最值得买...

这几年,网络机顶盒开始慢慢的取代传统的有线电视和传统机顶盒,进入了人们的生活,让电视连接上互联网,让我们看电视能有更多丰富的体验。不过毕竟网络机顶盒也是电子产品,如果要选购的话还是需要仔细的斟酌一下。 现在网…

网络入门基础

文章目录 网络的位置计算机网络背景网络发展认识“协议” 网络协议初始协议分层OSI七层模型TCP/IP五层(或四层)模型 网络传输基本流程同局域网的两台主机通信跨网络的两台主机通信 网络中的地址管理认识IP地址认识MAC地址 网络的位置 我们通常在手机或者…

用机顶盒或网络电视机实现监控摄像头预览,完成简单的录相机功能,用机顶盒远程观看摄像头,多个监控可以同时观看,实时观看,也可以用机顶盒或网络电视观看局域网内的监控画面

用机顶盒或网络电视机实现监控摄像头预览,完成简单的录相机功能,用机顶盒远程观看摄像头,多个监控可以同时观看,实时观看,也可以用机顶盒或网络电视观看局域网内的监控画面 准备: 1、需要知道 监控摄像头的RTSP推播地…

A ConvNet for the 2020s

A ConvNet for the 2020s 2020年代的ConvNet https://openaccess.thecvf.com/content/CVPR2022/papers/Liu_A_ConvNet_for_the_2020s_CVPR_2022_paper.pdf Zhuang Liu 1 , 2 ∗ ^{1,2*} 1,2∗ Hanzi Mao 1 ^1 1 Chao-Yuan Wu 1 ^1 1 Christoph Feichtenhofer 1 ^1 1 Trevor Da…

android tv盒子哪个好用,2020什么电视盒子最好?超良心的三大实用选购技巧

可能理工出身的关系,平时喜欢专研一些数码产品。电视盒子别看体积小巧,但是功能可不小,能够代替传统的数字机顶盒,享受丰富的互联网视频资源,而且不必按月缴纳服务费用。因此成为了不少用户的首先,那么2020年什么电视盒子最好呢?这里总结了三大技巧,帮助大家选购。 1、…

乐视网tv版服务器无响应,揭秘网络电视机顶盒看电视直播卡的原因

很多用户认为网络电视机顶盒看电视直播卡的原因是由于盒子本身的因素造成的,其实这个观点并不正确。并不是配置越高速度就越快,看电视就不卡,网络电视机顶盒看电视直播卡的原因是有多个因素造成的,当遇到看直播卡的问题时&#xf…