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

这篇具有很好参考价值的文章主要介绍了Flask开发简易网站疑难点梳理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

整体总结

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

创建项目独立的python环境

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

python -m venv xxxxxx

windows下python独立环境目录结构

Flask开发简易网站疑难点梳理
安装第三方python库和启动我们的python项目的时候都需要先启动python独立环境,运行:
./env/Scripts/activate.bat

linux下python独立环境目录结构

Flask开发简易网站疑难点梳理
启动独立环境:

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

大概需要安装的第三方库

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

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

python:

@sockets.route('/message')
def message(msg):
    # 1. 判断是否为Websocket请求,http不包含wsgi.websocket
    ws = 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 None
    if request.path == '/register':
        return None
    user_info = session.get('user_info')
    if user_info:
        return None
    return redirect('login')

修改成:文章来源地址https://www.toymoban.com/news/detail-474435.html

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

到了这里,关于Flask开发简易网站疑难点梳理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python-web开发学习笔记(3):Flask Demo,一个网站开发小案例

    ☕️ 推荐关注我的另一个专栏系列:大道至简,该系列收录了许多优质的人工智能算法博文,包括机器学习和自然语言处理等,持续更新中,欢迎各位关注~   介绍完Python-web开发学习笔记(2)--- HTML基础_尚拙谨言的博客-CSDN博客,我们来搞一个简单的网站小案例,带大家更进

    2024年02月06日
    浏览(44)
  • 基于 Python 的 Flask 框架开发的在线电影网站系统(附完整源码)

    今天我给大家分享的是基于Python的Flask框架开发的在线电影网站系统,大家平时需要哪个方面的项目都可以在每篇文章的下面留言,我后续会在公众号分享出来。 该项目为基于Python的Flask框架搭建的在线电影网站 项目介绍:网站前端采用HTML5编写,使用Bootstrap前端开发框架,后

    2024年02月07日
    浏览(56)
  • 基于WebSocket的简易聊天室的基本实现梳理

    目前在很多网站为了实现推送技术所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信

    2024年02月11日
    浏览(39)
  • 外汇网站主要业务逻辑梳理

    上图为工行ICBC的外汇 保证金交易界面。 当需要买入帐户欧元(欧元人民币)时,买入100欧元,因为没有杠杆,虽然欧元中间价是782.34,但实际需要支付783.14元人民币的保证金,这个兑换不是真实的外汇兑换。银行只是将这些保证金扣除了,给您了一个100欧元的合约,这个合

    2024年02月02日
    浏览(36)
  • python3 Flask jwt 简易token认证实例

        chatgpt写的代码

    2024年02月22日
    浏览(47)
  • 游戏外包开发技术难点分析

    游戏开发涉及多个领域的技术,因此在开发过程中可能会遇到很多技术难点。今天和大家分享一些常见的游戏开发技术难点,希望对大家开发游戏有一定帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。   1. 图形渲染:游戏开发中的图形渲染技术

    2024年02月08日
    浏览(39)
  • python Flask 写一个简易的 web 端上传文件程序 (附demo)

    在当今数字化时代,文件上传需求日益普遍。无论是个人还是企业,都可能需要实现文件上传功能。为此,本文将分享如何使用Python Flask框架创建一个简易的Web端上传文件程序。 需要源码的留下邮箱,私信也会看,不过看的不勤,留言有通知。 Flask 是一个用于构建 Web 应用程

    2024年04月16日
    浏览(49)
  • web开发基础笔录(2)-Ruby疑难点(1)

    目录 关于 Ruby rbenv rbenv是类Unix系统上Ruby编程语言的版本管理工具 使用程序包管理器 安装ruby 安装gems 卸载Ruby版本 设置path 安装rails 集成字符串 注释与变量内插 字典HASH 数组 times迭代 想知道 Ruby 为什么会如此受欢迎吗?在粉丝眼中,Ruby 是一门优美而巧妙的语言,他们还认为

    2024年02月12日
    浏览(36)
  • Django搭建一个简易GPT网站

    处理完项目的环境后,让我们现在创建主项目,在端中运行此命令: 根据Django 文档,django-admin它是一个用于管理任务的命令行实用程序。切换到项目的文件夹,使用命令如下 并创建应用程序assistant,运行命令: 到目前为止,现在应该有一个如下所示的文件夹结构: 让我们

    2024年02月02日
    浏览(44)
  • Django搭建一个简易AI网站

    处理完项目的环境后,让我们现在创建主项目,在端中运行此命令: 根据Django 文档,django-admin它是一个用于管理任务的命令行实用程序。切换到项目的文件夹,使用命令如下 并创建应用程序assistant,运行命令: 到目前为止,现在应该有一个如下所示的文件夹结构: 让我们

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包