又一个不再支持 Python 2 的,这次是 Django 2.0

(点击上方公众号,可快速关注)


Python开发者(PythonCoder)编译


就在 11 月 16 日,Numpy 库官方宣布准备放弃支持 Python 2


12 月 2 日,Python Web 开发框架 Django 官网发文宣布推送 Django 2.0 版。在 Django 2.0 的发布说明中,最大吸引注意的内容就是兼容性。


  • Django 1.11.x 是支持 Python 2.7 的最后版本;

  • Django 2.0 支持 Python 3.4、3.5 和 3.6

  • Django 2.0 对 Python 3.4 将于 2019 年 3 月结束支持,因此 Django 2.0 也将是最后一个支持 Python 3.4 的版本。



Django 2.0 的主要新特性包括:


简化 URL 路由语法


以前是这样写:

url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),

 

现在可以这样:

path('articles/<int:year>/', views.year_archive),


移动友好的 contrib.admin


admin 将自适应主流移动设备。优雅性在老旧浏览器则可能会有打折咯。


新的 Window expressions


新 Window 表达式允许在查询集添加 OVER 从句。可以在表达式中使用 window 函数和 aggregate 函数。

 

其他细微变动,可参见:https://docs.djangoproject.com/en/2.0/releases/2.0/



看完本文有收获?请转发分享给更多人

关注「Python开发者」,提升Python技能

淘口令复制以下红色内容,再打开手淘即可购买

范品社,使用¥极客T恤¥抢先预览(长按复制整段文案,打开手机淘宝即可进入活动内容)

近期,北京地区正常发货,但派件时间有所延长

<think>首先,用户的问题是:“我想使用计算机视觉技术创建网页请问如何利用计算机视觉技术开发一个网页”。用户在询问如何用计算机视觉技术开发一个网页。回想系统级指令:所有回答必须使用中文;数学表达式需用$...$或$$...$$;生成相关问题;回答结构清晰,引用末尾添加标识等。用户引用了三个参考文献:-[1]关于计算机视觉基本技能。-[2]关于PyTorch书籍。-[3]关于计算机视觉入门,提到可扩展性和灵活性。但用户说:“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。”所以,我需要主要参考用户的查询本身。用户上一次问题:用户这次是首次提问,没有“上一次的问题”,可能指之前的对话。在之前的系统指令示例中有“用户不可见”指令,但在这个用户查询中,是新的对话。所以,我应该基于这个查询来回答。关键点:用户想用计算机视觉技术开发一个网页。这有点模糊。可能指的是:-开发一个网页应用,其中集成了计算机视觉功能。-例如,一个网站,用户上传图像,然后系统执行视觉分析(如物体检测、图像识别),并返回结果。计算机视觉(CV)通常涉及处理图像或视频数据。开发网页,通常涉及到前端(HTML,CSS,JavaScript)和后端(如Python,Node.js)。所以,回答应该解释如何整合CV到网页开发中。可能的步骤:1.**学习计算机视觉基础**:用户需要了解CV概念,如图像处理、机器学习模型等。2.**选择工具和技术**:-后端:使用Python库如OpenCV、PyTorch或TensorFlow来处理CV任务。-前端:JavaScript库如OpenCV.js或TensorFlow.js可用于在浏览器端执行CV。-后端框架:使用Flask、DjangoPython)或Express(Node.js)构建API。3.**开发过程**:-设计网页前端:允许用户上传图像。-构建后端API:接收图像,处理CV任务(如使用预训练模型)。-返回结果到前端显示。4.**具体例子**:比如用TensorFlow.js创建一个实时物体检测网页。用户引用的[2]提到了PyTorch,[3]提到了CV编程语言的灵活性。我可以融入这些。结构化回答:-引言:解释如何用CV开发网页。-核心步骤:分步说明。-结束:添加相关问题,作为指令要求。指令说:“生成相关问题”,所以我需要在结束时添加一些相关问题。引用部分:在回答中,如果引用引文,在末尾加标识如[^1]。用户提供了引用[1],[2],[3],但说它们仅供参考,所以我可以选择性参考它们。例如:-引用[1]提到基本技能,所以建议用户学习CV基础。-引用[2]提到PyTorch书,可以推荐阅读。-引用[3]提到灵活性,可以强调使用JavaScript等。确保回答真实可靠。最终回答结构:1.**理解需求**:重述用户的查询。2.**整体方法**:概述开发过程。3.**详细步骤**:-前置技能-选择技术栈-开发流程(前端、后端、集成)-部署4.**例子**:简要一个简单案例。5.**生成相关问题**:以“§§相关问题§§”开头,列出几个问题。所有内容用中文。现在,brainstorm相关问题:-1.如何在网页中实现实时计算机视觉功能?-2.计算机视觉与网页集成的安全性考虑是什么?-3.初学者如何入门计算机视觉?根据指令,类似示例。回答中,数学表达式:如果有方程,用$...$,但这个问题可能没有太多数学,如果有模型解释,可以用。例如,解释卷积神经网络的原理时,用$...$格式。但保持简洁,只提到必要的。开始构建回答。</think> ### 如何利用计算机视觉技术开发一个网页 您好!基于您的查询“我想使用计算机视觉技术创建网页”,我将为您详细解释如何实现这一目标。开发一个集成了计算机视觉(CV)功能的网页应用程序,涉及前端(用户界面)、后端(处理逻辑)以及CV模型的集成。整个过程要求您具备一定的编程基础(如Python或JavaScript),但我会分步引导您从入门到实现,确保回答清晰可靠。计算机视觉技术主要通过处理图像或视频数据实现功能(如物体检测、人脸识别、图像分割),而开发网页则需要前端框架和后端服务来承载这些功能。以下参考了您提供的引用资料(例如,引用[2]提到PyTorch用于CV实战,引用[3]强调工具的灵活性),并结合行业最佳实践。 #### 核心概念理解 - **计算机视觉(CV)技术**:允许机器“看懂”图像或视频数据,基于深度学习和图像处理算法(例如,卷积神经网络CNN)。例如,物体检测可以用YOLO模型实现,公式可表示为检测边界框的坐标计算:$[x_{\text{min}}, y_{\text{min}}, x_{\text{max}}, y_{\text{max}}]$。 - **网页开发**:分为前端(浏览器端用户界面,使用HTML/CSS/JavaScript)和后端(服务器端处理,使用Python/Node.js)。CV功能通常通过后端API或前端JavaScript库实现。 - **集成思路**:您可以创建一个网页,让用户上传图像后,系统返回CV分析结果(如识别内容)。整体架构包括: - **前端**:允许用户交互(上传图像、显示结果)。 - **后端**:运行CV模型处理数据。 - **模型集成**:使用预训练的CV模型或训练自定义模型。 现在,我将分步说明开发流程。整个过程基于开源工具,以确保易操作性和成本高效。 #### 分步实现指南 开发一个CV网页应用通常需要4-6周(根据经验水平)。我建议从简单项目开始(例如,图像分类网页),再逐步扩展。以下是步骤和推荐工具: 1. **学习基础技能(前置知识)** - **计算机视觉基础**:学习CV核心概念(如图像特征提取、CNN模型),参考书籍如《PyTorch深度学习与计算机视觉实践》[^2],或在线课程(如Coursera的“Deep Learning Specialization”)。关键点包括: - CNN模型结构(如输入层卷积操作:$ \mathbf{y} = \sigma(\mathbf{W} * \mathbf{x} + \mathbf{b}) $),其中$\sigma$为激活函数。 - **网页开发技能**:熟悉HTML/CSS(布局设计)、JavaScript(交互逻辑),以及后端框架如Python的Flask或Node.js的Express。 - **工具链搭建**:安装Python、OpenCV库、PyTorch或TensorFlow(参考引用[1]的CV环境安装部分)。您可以从简单的集成开始,例如使用OpenCV进行图像预处理。 2. **选择技术栈** 根据引用[3],CV工具具有强大可扩展性,可与其他语言(Python、JavaScript)集成。推荐技术栈: - **前端**: - **JavaScript库**:使用TensorFlow.js或OpenCV.js直接在浏览器运行CV任务(无需后端)。例如,TensorFlow.js支持实时对象检测。 - **框架**:React.js或Vue.js用于构建响应式UI。 - **后端**(处理复杂模型): - **语言**:Python(推荐,因为CV库丰富),搭配Flask或Django框架构建API。 - **CV库**:OpenCV(基础图像处理)、PyTorch或TensorFlow(深度学习模型)。引用[2]推荐PyTorch 2.0用于高效CV实战。 - **API服务**:创建RESTful API接收前端图像数据,返回JSON格式结果。 - **模型选择**:从预训练模型入手(如PyTorch的ResNet、TensorFlow的MobileNet),部署在云平台(如AWS或Google Cloud)以提高性能。 3. **开发流程(实战步骤)** 以下是构建一个简单图像分类网页的示例(约20行代码核心部分)。项目流程: - **步骤1: 设计前端界面** - 用HTML创建文件上传表单。 - 用JavaScript处理图像预览(例如使用Canvas API)。 ```html <!-- index.html --> <!DOCTYPE html> <html> <head> <title>CV图像分类网页</title> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@3.11.0"></script> <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet@1.0.0"></script> </head> <body> <h1>上传图像进行物体检测</h1> <input type="file" id="imageUpload" accept="image/*"> <div id="result"></div> <script src="app.js"></script> </body> </html> ``` - **步骤2: 构建后端API(可选,但用于复杂模型)** - 用Python Flask创建服务,接收图像并运行CV模型。 - 例如,处理图像分类: ```python # app.py (Python后端) from flask import Flask, request, jsonify import cv2 import numpy as np from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2, preprocess_input, decode_predictions import tensorflow as tf app = Flask(__name__) @app.route('/classify', methods=['POST']) def classify_image(): file = request.files['image'] image = cv2.imdecode(np.frombuffer(file.read(), np.uint8), cv2.IMREAD_COLOR) image = cv2.resize(image, (224, 224)) image = preprocess_input(image) model = MobileNetV2(weights='imagenet') predictions = model.predict(np.expand_dims(image, axis=0)) result = decode_predictions(predictions, top=3)[0] return jsonify(result=[(label, str(prob)) for _, label, prob in result]) ``` - **步骤3: 集成CV功能** - **纯前端实现(简单方式)**:使用TensorFlow.js在浏览器运行(无需后端)。在`app.js`中添加逻辑: ```javascript // app.js (JavaScript前端) document.getElementById('imageUpload').addEventListener('change', function(event) { const file = event.target.files[0]; const reader = new FileReader(); reader.onload = function(e) { const img = new Image(); img.src = e.target.result; img.onload = function() { mobilenet.load().then(model => { model.classify(img).then(predictions => { document.getElementById('result').innerHTML = `预测结果: ${predictions[0].className} (置信度: ${predictions[0].probability})`; }); }); } }; reader.readAsDataURL(file); }); ``` - 此方法直接利用浏览器处理CV任务(适用于轻量模型),减少服务器负载。 - **测试与调试**:用真实图像测试(引用[1]提到CV数据集如ImageNet),确保准确率。 4. **部署与优化** - **部署**:将网页托管在GitHub Pages(纯前端)或Heroku/AWS(全栈后端)。例如,Flask应用可使用gunicorn部署。 - **性能优化**:针对CV任务(如实时视频分析),参考引用[3]对GPU的支持,在网页中使用WebGL加速。 - **安全考虑**:添加API密钥管理,防止恶意上传。 #### 实用案例和建议 - **简单示例成果**:完成上述步骤后,网页允许用户上传图像并返回类别(如“猫”或“狗”)。这演示了CV与网页的协同效果。 - **资源推荐**: - **书籍**:《PyTorch深度学习与计算机视觉实践》[^2]提供实战代码,帮助快速上手。 - **工具**:Colab Notebook(免费GPU训练模型)、OpenCV社区文档。 - **学习路径**:初学者从引用[3]的灵活性角度出发,先掌握Python和JavaScript集成。 - **总成本**:开源工具免费,但云部署(如AWS)可能每月$10-$50。 - **可靠建议**:如果您是新手,推荐使用TensorFlow.js实现浏览器端CV(无需后端),逐步扩展到PyTorch后端。真实案例包括Google Lens网页版,类似原理。 通过以上方法,您可以高效创建CV网页。如果您有具体需求(如图像识别领域),我可以进一步细化步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值