以django项目
new_pro
为例,在
new_pro/new_pro/urls.py
文件中:
使用:
path('URL/', include(('APP名.urls', 'APP名'), namespace='别名'))
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('main/', include(('mainweb.urls', 'mainweb'), namespace='main'))
然后在APPmainweb
的urls.py
文件中添加:
from django.urls import path
from .views import MainView
urlpatterns = [
path('mainview/', MainView.as_view(), name='structure'),
使用http://http://127.0.0.1:8000/main/mainview/
就可以定位到MainView
函数的逻辑啦
官方DOC:https://docs.djangoproject.com/en/3.2/topics/http/urls/
以django项目new_pro为例,在new_pro/new_pro/urls.py文件中:使用:path('URL/', include(('APP名.urls', 'APP名'), namespace='别名'))例子:from django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path('admin/', admin.site.urls), # 前面是url
创建项目 django_test 与应用 app1 app2
django-admin startproject django_test
django-admin startapp app1
django-admin startapp app2
django_tes/urls.py 文件
from django.contrib import admin
from django.urls impo...
django创建(事先创建虚拟环境好)命令行创建目录结构启动项目中新建appurl分发器url 映射 在浏览器输入什么url才能访问到我们的视图函数URL参数转化器接收用户get请求(request)urls 中包含另外一个urls 模块
创建(事先创建虚拟环境好)
命令行创建
django-admin startproject demo1
manage.py 命令行接口文件,可用python manage.py help查看其功能与操作,一般不改动这个文件
settings.py 设置文
django2.0在url的配置上较之以前的版本有点区别,在之前的版本是通过django.conf.urls.url函数来实现路径配置的urlpatterns = [
url(r'index/',views.index),
]在2.0版本中,通过django.urls.path函数来配置urlpatterns = [
path("index/",views.index)
]并且...
urls.py:又称为URL分发器(路由配置文件)
URL配置(URLconf)就形式Django所支撑网站的目录。他的本质是URL模式以及要为该URL模式调用的试图函数之间的映射表。开发者就是以这种方式告诉Django,对于这个URL调用这段代码,而那个URL调用那段代码。URL加载是从配置文件中开始的。
1.url配置格式:
urlpatterns = patterns...
django中在主项目urls.py中调用app中的urls.pyurlpatterns = [
url(r'^admin/',include(admin.site.urls)),
url(r'^index/',views.index),
url(r'^helloapp/',include('helloapp.urls')),
]最开始按照网上查的内容,这个好坑,害我弄了好久
1、创建第二个app
假设我们项目P下面已经有了一个默认的app,名字是app1。现在我想创建第二个app,名字时app2。
进入pychram下的Terminal中,运行命令:
python manage.py startapp app2
此外,我在每个app下都建立一个urls.py,方便区分。
右击app名,点击“new”,选择“Python File”,命名为urls,确定。
2、设置url.py
(1)设置P\urls.py
引入app2下的urls,然后添加引导路径。具体代码如下:
from app2 import urls as app2_urls
urlpatterns
This question has been asked earlier: 07000
Application configuration objects store metadata for an application. Some attributes can be configured in AppConfig subclasses. Others are set by Django and read-only.
但是,应用程序的元数据是什么意思?只限于 AppConfig metadata: name , verbose_name , path , label , module ,
今天看Django的url模块,其中根目录的url 如何关联到具体app的url,做了一些测试,可做参考。
首先,根目录的urls.py中,去定义指向到app的path,例如,你有一个app叫baidunews,就是path(‘baidunews/’, include(‘baidunews.urls)),
from dja...
如果
Django的project
中有多个
app应用,来管理
url可能会造成比较混乱的局面,为了解决这个问题,我们可以用
Django.
urls
中的inlude方法进行配置,使每个
app目录下都可以拥有
urls的
py文件,实现总
urls与
app urls
文件分离。以下将首先介绍include函数的用法,随后进行示例解析。
一、include用法介绍
url(路径,视图,其它,name)
下面是一个简单的 Django 项目,可以将 YOLOv5 训练好的模型部署到 Django 上,并在前端页面上显示检测后的图片。
首先,我们需要在 Django 项目中创建一个 app,我这里将其命名为 `yolov5_detection`。
在 `models.py` 中,我们定义了一个 `DetectionModel` 模型,用于加载 YOLOv5 训练好的模型和进行目标检测。
```python
import torch
import cv2
from django.db import models
class DetectionModel:
def __init__(self, model_path):
self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
self.model = torch.hub.load('ultralytics/yolov5', 'custom', path=model_path).to(self.device).autoshape()
def detect(self, image_path):
img = cv2.imread(image_path)
results = self.model([img.to(self.device)])
return results.xyxy[0].cpu().numpy()
在 `view.py` 中,我们定义了一个 `detect` 视图函数,用于处理前端上传的图片并进行目标检测。在这个函数中,我们使用 `DetectionModel` 加载模型并进行目标检测,将检测结果保存到一个列表中,并将其传递给前端页面。
```python
from django.shortcuts import render
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from .models import DetectionModel
@csrf_exempt
def detect(request):
if request.method == 'POST':
model_path = 'path/to/model.pt'
detection_model = DetectionModel(model_path)
image = request.FILES['image']
image_path = 'path/to/image.jpg'
with open(image_path, 'wb+') as f:
f.write(image.read())
results = detection_model.detect(image_path)
detections = []
for res in results:
detections.append({
'class': res[5],
'confidence': res[4],
'bbox': [int(res[0]), int(res[1]), int(res[2]), int(res[3])]
return JsonResponse({'detections': detections})
return render(request, 'detect.html')
在前端页面上,我们使用 HTML 和 JavaScript 来实现上传图片并显示检测结果。在这个页面中,我们使用 `fetch` 函数向后端发送 POST 请求,上传图片并接收检测结果。在接收到结果后,将其绘制到 Canvas 上。
```html
<!DOCTYPE html>
<meta charset="UTF-8">
<title>YOLOv5 Detection</title>
</head>
<input type="file" id="image" accept="image/*">
<button id="detect">Detect</button>
<canvas id="canvas"></canvas>
<script>
const image = document.getElementById('image');
const detectButton = document.getElementById('detect');
const canvas = document.getElementById('canvas');
detectButton.addEventListener('click', async () => {
const formData = new FormData();
formData.append('image', image.files[0]);
const response = await fetch('/detect', {
method: 'POST',
body: formData
const data = await response.json();
const detections = data.detections;
const ctx = canvas.getContext('2d');
const img = new Image();
img.onload = () => {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
ctx.lineWidth = 2;
ctx.font = '20px Arial';
for (const detection of detections) {
const [x1, y1, x2, y2] = detection.bbox;
ctx.strokeStyle = 'red';
ctx.strokeRect(x1, y1, x2 - x1, y2 - y1);
ctx.fillStyle = 'red';
ctx.fillText(`${detection.class} (${detection.confidence.toFixed(2)})`, x1, y1 - 5);
img.src = URL.createObjectURL(image.files[0]);
</script>
</body>
</html>
最后,在 `urls.py` 中将 `detect` 视图函数和前端页面进行 URL 映射。
```python
from django.urls import path
from .views import detect
urlpatterns = [
path('', detect, name='detect'),
完整代码可以参考以下链接:
- [Django-YOLOv5-Detection](https://github.com/leemengtaiwan/Django-YOLOv5-Detection)
python解决urllib发送请求报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED].....>
software_testrer:
python解决urllib发送请求报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED].....>
software_testrer:
Grafana获取URL地址中的json数据
pytorch 使用 CPU 多进程多核训练模型
qq_35273874:
Pyechart离线部署