Django学习笔记(三)--Django超链接

Django基础教程(125)Django关系和超链接API之确保URL都命名:Django URL命名大冒险:让你的超链接不再“迷路”! 嘿,Django开发者!你是否曾为乱七八糟的URL而头疼?别担心,这篇深度分析带你玩转Django关系和超链接API,核心就一条:确保每个URL都有个名字!为什么这这么重要?因为命名URL能让你的代码更清晰、可维护,还能轻松生成超链接,避免硬编码的噩梦。我会用完整示例一步步展示如何定义模型关系、配置序列化器,并利用Django REST框架的超链接API来构建智能API端点。从基础概念到实战技巧,这篇文章帮你告别“404困惑”,让你的Web应用像老友记里的咖啡店一样亲切自然——永远知道该去哪! 阅读详情

Django中的超链接


超链接的目标地址


href后面是目标地址

template中可以用 {% url  ‘app_name : url_name’   param %}

app_name:应用命名空间的名称

url_name:链接名

param:地址的参数

app_name与根目录下的urls.py中的namespace对应,url_name 与app中的urls.py中的name对应


再配URL

根urls,写在include()的第二个参数位置,namespace='blogapp' (这个应用的命名空间)

应用的url()的第三个参数位置,name='page'

主要取决于是否使用inclue()引用另一个url配置文件


根目录下的urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include('blog.urls',namespace='blogapp')),
    ]

blog app的urls.py

urlpatterns = [

    url(r'^index/$',views.index ),
    url(r'^article/(?P<article_id>[0-9]+)/$',views.article_page,name='article_page' ),

]

blog app的blog.html

{% for article in articles %}
    <a href="{% url 'blogapp:article_page' article.id %}">{{ article.title }}</a>
    </br>
{% endfor %}
Django基础教程(124)Django关系和超链接API之链接API:深度分析Django关系和超链接API:链接API,让你的资源“自动社交”! 还在为Django里模型的关系头疼?手动拼URL拼到怀疑人生?本篇深度剖析Django关系和超链接API,揭秘如何用“链接API”优雅解决!从“手动搬砖”到“自动驾驶”,讲解模型关系(ForeignKey、OneToOne、ManyToMany)和HyperlinkedModelSerializer核心机制。附完整博客API示例,涵盖序列化、视图集、路由配置及接口测试。让你告别字符串拼接,拥抱资源互联,效率飙升! 阅读详情

相关推荐

Django命名URL和反向解析URL实现解析

主要介绍了Django命名URL和反向解析URL实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Django网络应用实践(3)-button按钮点击事件+超链接跳转及分页+路由管理

js的代码中,需要明确的是点击该按钮后所调用的路由,此时的路由不是一个具体的页面,而是在后台中具体处理某一事件的一个自定义函数。想要实现点击button按钮后触发某个事件,这就得使用js的知识,将按钮与具体的某个事件绑定,当点击该按钮时触发这一事件。与button跳转一样,这里跳转的还是一个执行某个功能的一个自定义函数,这个函数会负责将静态页面渲染出来。html的代码中,需要对button中id的参数进行明确,id明确之后才能绑定事件。我的二级路由写在app目录中的urls.py中,这个文件需要自己创建。

fuyouliyang的博客 5297

获取Django项目的全部url方法详解

在为一个项目添加权限时,遇到一个问题,就是为项目所有的url设置权限,但是一个一个手动输入太麻烦了,所以考虑用代码获取到一个项目所有的url 首先,考虑到项目最外层的urlpartterns,因为所有的url都要通过这里 urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^arya/', site.urls), url(r'^index/', index), ] 先循环打印一下这个列表,看一下拿到的结果: <RegexURLResolver> (arya:arya)

python django超链接

之前用django框架打了一个简易的博客网站,现在说说怎么用django做超链接。 本文基于之前讲解的博客应用,如果只想学超链接请自行删减代码或评论提问。 首先,在templates文件夹下添加details.html文件: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&...

CJK's Blog 1692

VLA强化学习训练:π0到π0.5的技术优化与实现

视觉语言动作模型(VLA)作为多模态强化学习的重要分支,通过融合视觉、语言和环境状态数据实现智能决策。其核心技术在于多模态特征融合与动作空间设计,其中PPO算法因其出色的训练稳定性成为首选方案。在工程实践中,延迟补偿机制和课程学习设计能显著提升模型性能,如在四足机器人项目中使避障成功率提升47%。针对实际部署中的性能下降问题,需要特别关注硬件量化参数和控制频率一致性等关键因素。本文通过π0与π0.5版本的对比实验,详细解析了VLA模型在机械臂控制等具身智能场景中的优化路径。

weixin_29041767的博客 246

C++ 核电站

问题描述 一个核电站有n个放核物质的坑,排列在一条直线上。如果连续m个坑中放入核物质就会发生爆炸,所以某些坑中不能放核物质。 本题的任务:对于给定的n和m,求不发生爆炸的放置核物质的方案总数。 输入格式 第一行两个正整数n和m,之间用一个空格隔开。2≤n≤50,2≤m≤5。 输出格式 一行一个正整数,表示方案总数。 输入样例 4 3 输出样例 13 数据规模与约定 2≤n≤50,2≤m≤5 CODE #include<bits/stdc++.h> using namespace

HybridCOW_HORSE的博客 1803

Django 配置超链接的三种方法--不是原创,做个笔记

方法一 Python 3.7.2/Django 2.1.4,django模板中超链接配置,三种方法 方法一: myblog/urls.py: from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/...

tianzemeizhi的博客 1426

OpenEuler内核编译及替换

一、内核源码下载 在gitee上下载OpenEuler内核源码 下载地址 选择需要的内核版本源码压缩包进行下载 二、内核编译 1.解压缩 将下载好的源码进行解压 tar xvf openeuler-kernel-4.19.90-2107.1.0.tar.gz 2.清理源代码树 解压后得到一个名为kernel的内核源码文件夹,进入后执行命令 make mrproper 清理过去内核编译产生的config,第一次编译时可不执行此命令 3.生成内核配置文件.config 先将将系统原配置文件拷贝过来,原

m0_56602092的博客 2万+

在django admin中实现列表中的字段展示为超链接

1. 在admin中自定义一个方法,返回带有超链接的html(此处的versionUrl就是admin对应model里面需要展示为超链接的字段)2. 然后在list_display中添加该自定义方法,替换原来要展示的versionUrl。3. 为该字段添加title描述。

sherryGC的博客 322

VTsystem背景检查函数Value Valid

Value Valid是个非常实用的函数,如何让它灵活的为我们所用,便是本文的内容。

欢迎来到eee的博客 795

【AI Agent】Harness Engineering实践

Harness(运行宿主)是围绕 LLM构建的一套确定性工程系统,其核心职责是:承认模型的固有局限,用可控的工程手段逐一弥补,使"强大但不可靠的推理引擎"变成"可信赖的生产级Agent"模型 是发动机——提供原始动力Agent 是驾驶员——做出决策Harness 是道路、地图、护栏、仪表盘、维修站和质检线——确保行驶安全有序没有Harness,模型越强,可能只是更快地制造混乱。

sysu_lluozh 192

Django Rest Framework 5:关系和超链接API

目前我们的 API 中的关系是用主键表示的。我们将通过使用超链接来提高我们 API 的内部联系。 文章目录一,内容协商(一)内容协商概述1,内容协商的基本原则2,为什么会有内容协商3,内容协商机制(1)服务器驱动的内容协商(2)客户端/代理驱动的内容协商(二)REST framework中的内容协商机制1,确定可接受的渲染器2,自定义内容协商3,设置内容协商二,解析器(一)设置解析器(二)API 参考1,JSONParser2,FormParser3,MultiPartParser4,FileUploadP

dangfulin的博客 807

学Simulink——基于 Simulink 的 滑模控制(SMC)

本文详细介绍了基于Simulink的Buck变换器滑模控制(SMC)设计与实现方法。首先阐述了传统PI控制在负载突变时的不足,以及滑模控制具有强鲁棒性和快速响应的优势。通过建立Buck变换器的连续状态方程,推导了含积分项的滑模面和控制律,并采用边界层法抑制抖振。文章分步骤讲解了Simulink模型搭建过程,包括主电路、控制器实现和负载扰动模拟模块。仿真结果表明,在负载1A↔5A阶跃时,SMC控制输出电压波动仅0.08V,恢复时间0.35ms,远优于传统PI控制。同时给出了工程实践中的参数选择建议和数字实现技

amy_mhd的博客 254

在Django的admin上显示超链接

Tips allow_tags: 允许显示超链接 short_description: 显示的字段名 from django.contrib import admin from django.utils.html import format_html from .models import ModelsExample @admin.register(ModelsExample) clas...

Theo仔要DeepLearning 2323

基于计算机视觉的无人便利店技术:从算法到部署的系统化实战指南

摘要:本文系统介绍了基于计算机视觉的无人便利店技术方案,提出"商品检测-跟踪-动作识别-防损-结算"五段式流水线架构。详细阐述了YOLOv8-Seg商品检测、OC-Sort多目标跟踪、3D-CNN+ST-GCN动作识别等核心算法实现,并完成NVIDIA Jetson Xavier NX边缘端的优化部署。通过TensorRT量化、DeepStream加速等技术手段,系统在保持94.7%动作识别准确率的同时,将漏单率降至0.8%,单店云端算力成本较行业平均降低84%。所有代码已开源,可直接应

博客 625

仿真学习系列(三十):Sigrity设计文件(Altium Designer和Allegro)导入

很多刚接触 Sigrity 的工程师都会产生疑问:Sigrity 功能这么多,是不是门槛很高?我能学得会吗? 其实,Sigrity 的核心并不在“操作难”,而是在“理解仿真背后的机理”。一旦掌握基本流程,你会发现它并没有想象中那么复杂,反而能大大提升你的高速设计能力。本节内容,就是从最简单的一步开始 —— 把你的设计文件正确导入 Sigrity。

案例文章,高速信号 524

django里html的超链接,在django模板中实现超链接配置

django中的超链接,在template中可以用{% url 'app_name:url_name' param%}其中app_name在工程urls中配置的namespace取值,url_name是在tweb/urls.py中配置的name对应 启用的param参数为可选项,当函数存在的时候带上参数对应的取值urls.pyurlpatterns = [url(r'^admin/', admin...

weixin_42569429的博客 1448

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Django serializer 方法补充之:depth 与字段生成超链接

前一节,我们学了serializer 的基本用法,在展示choice 或者有多层关联的外键的时候,我们需要自定义方法,但是Django 有默认的方法,只需要加一个变量即可。 depth 表示返回的深度,设置为几就表示有几层的关联外键信息,优点是书写简便,缺点是相应速度慢,不知道总共几层时,也不知道如何设置值,官方建议1-10,大多数是1-4即可。 2. 返回一个超链接 现在,通过group为例,...

江玉郎 2495

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

django html超链接传参数,在django模板中实现超链接配置

django中的超链接,在template中可以用{% url 'app_name:url_name' param%}其中app_name在工程urls中配置的namespace取值,url_name是在tweb/urls.py中配置的name对应 启用的param参数为可选项,当函数存在的时候带上参数对应的取值urls.pyurlpatterns = [url(r'^admin/', admin...

weixin_34112399的博客 634

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

django网页开发:2. 模板、url、超链接

PEP 8: expected 2 blank lines, found 1 原因在于pep 8规范,在声明函数的那一行的上方必须有两行的空行   新建django项目,app名blog django项目在创建时会生成一个templates文件夹,用于存放html文件 templates新建index.html,内容随便输点   配置url: 首先views.py定义一个函数(使用...

ant的博客 3480

Django REST framework model关系和超链接api

我们的API中的关系是用主键表示的。我们将通过使用超链接来提高我们API的内部联系。 上一章,介绍了权限相关操作,下面内容在上一章基础上继续 上一章地址:https://blog.youkuaiyun.com/qq_41590764/article/details/108850210 开始: 第一步:增加model模型,并与User绑定一对多关系 即:每个用户可以有多个sensor模型,一个sensor模型只有一个用户 from django.db import models class User(mo

哈皮霍根的博客 363

Django模板中的超链接配置

一 超链接目标地址 href后面是目标地址 template中可以用"{% url 'app_name:url_name' param %}" 其中app_name和url_name都是在url中配置 二 url函数的名称参数 根urls下,写在include()的第二个参数位置,namespace = 'blog' 应用下则写在url()的第三个参数...

实践求真知 3043

Django UrlField自定义超链接

需求背景: 前提:会使用Django自带的admin后台 Django 自带的 admin,在注册模型时,添加 list_display_links,可指定某些字段可点击跳转页面 # 数据库模型 class BaseTable(models.Model): project = models.CharField(max_length=50, verbose_name='项目名称') # 注册admin @admin.register(BaseTable) class BaseTableAdmin(a

点点先生的博客 1980

5-关系和超链接API-Django REST框架

5-关系和超链接API-Django REST框架 教程5:关系和超链接API 目前,API中的关系是使用主键表示的。在本教程的这一部分中,我们将通过为关系使用超链接来改进API的内聚力和可发现性。 为API的根创建端点 现在我们有“代码段”和“用户”的端点,但是我们没有一个API的入口点。要创建一个视图,我们将使用一个基于常规函数的视图,@api_view我们之前介绍的装饰师。在你的snippe...

qq_25131333的博客 120

django html超链接传参数,Django 模板.html中 href参数传入

在Django模板中可能会出现访问多个URL指向同一函数,为减少代码可以利用正则表达式实现url(r'^remove_userinfo(?P\d+)/',views.removeuserinfo,name='reinfo'),(?P\d+)表示此部分的名称为nid,对应removeuserinfo(request,nid)中的nid参数def removeuserinfo(request,nid)...

weixin_28339527的博客 1855
上一篇: Django学习笔记(二)--通过model自动生成数据表
下一篇: Django学习笔记(四)--admin的配置与应用
oldbig_lin
博客等级 码龄10年 78粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值