python自动化运维学习第十九天--views的返回和admin

本文深入解析Django框架中视图的三种返回方式:render、HttpResponse和redirect,阐述其应用场景及工作原理,并通过示例代码展示如何在实际项目中运用。
views视图返回

当用户发送请求后,urls根据请求路由到views指定方法去处理后会返回,再进行下一步的操作。
views有三种返回方式render、HttpResponse和redirect。
它们分别代表什么意思呢,先看如下view.py的样例

from django.shortcuts import render,HttpResponse,redirect
from demo import models
import json

def login(request):
    a = ['biaoti','geshi',0,1]
    if request.method=='GET':
        obj_li = models.UserInfo.objects.all()
    return render(request, 'login.html', locals())

def test(request):
    dic = {'a':1,'b':2}
    dic_json = json.dumps(dic)
    #return HtttpResponse("this is test!")
    return HttpResponse(dic_json)

def redir(request):
    print("this is redirect.")
    return redirect('/login/')

然后是urls.py文件

from django.conf.urls import url, include
from django.contrib import admin
from demo import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/$', views.login),
    url(r'^test/', views.test),
    url(r'^red/', views.redir),
]

结合urls.py和views.py的代码对views的三种返回方式做下说明:

  1. render:当请求login页面到urls时,urls路由到views的login方法,方法处理后再经html渲染再返回。一般用于html渲染。
  2. HttpResponse:当请求test页面时,urls会路由到views的test方法,方法处理后直接返回字符串或者经js处理再返回。一般用于字符串直接返回或者经过js处理的场景
  3. redirect:当请求red页面时,urls会路由到views的redir方法,方法使用redirect函数直接跳转到了login页面,如果login存在则相当于去访问login,否则会返回404。
admin配置

admin是django后台管理页面。admin是django强大功能之一,它能共从数据库中读取数据,呈现在页面中,进行管理。默认情况下,它的功能已经非常强大,如果你不需要复杂的功能,它已经够用,但是有时候,一些特殊的功能还需要定制,比如搜索功能。
admin默认已经创建了,在urls中就可以看到
url(r'^admin/', admin.site.urls)
进入admin页面前需要先创建一个超级用户,在terminal中执行命令,创建超级用户
python manage.py createsuperuser
回车执行,这时会提示数据超级用户的username、Email、password,password最少8位,不能只有数字或字母。输入后,访问http://127.0.0.1:8000/admin,输入刚刚创建的用户名和密码即可进入admin后台。
在这里插入图片描述默认数据很少,只有users和groups。
如果你觉得英文界面不好用,可以在setting.py文件中修改以下选项
LANGUAGE_CODE = 'en-us' #LANGUAGE_CODE = 'zh-hans'
把创建的数据库表数据添加到admin后台页面,通过admin来查看修改数据库数据。需要修改appname下的admin.py文件。
admin.py文件内容如下:

from django.contrib import admin
from demo import models      #导入demo这个app下的models模块(models.py文件用来创建表)
admin.site.register(models.UserInfo)    #添加了models模块里的UserInfo类(UserInfo类是创建的表名)

models.py文件的内容如下:

from django.db import models

class UserInfo(models.Model):
    username = models.CharField(max_length=32,null=True)
    password = models.CharField(max_length=32,null=True)
    def __str__(self):
        return self.username

models.py文件创建了一个UserInfo类,其实就是在数据库中创建了一个UserInfo的表。在admin.py文件中注册这个UserInfo类,即可在admin后台管理UserInfo这个表的数据。
注:在models.py创建类时,最后要添加一个__str__函数返回一个类的变量即表的字段,这样在admin后台的表数据中可以查看到这个字段名的数据,否则都会显示相同的UserInfo object。

没有添加__str__方法返回表的字段名
没有添加__str__方法返回表的字段名
添加了__str__方法并返回了username字段名
添加了__str__方法并返回了username字段名
如果想在查看表数据时显示多个字段或者添加查找、筛选等,可以添加一个类来实现这些功能

 list_display:         指定要显示的字段
 search_fields:        指定搜索的字段
 list_filter:          指定列表过滤器
 ordering:            指定排序字段

可以修改admin.py文件

from django.contrib import admin
from demo import models
# Register your models here.
class MyAdmin(admin.ModelAdmin):       #定义一个类,继承自admin.ModelAdmin
    list_display = ("username","password")     #列出要显示的字段
    search_fields = ("username",)              #可以搜素的字段名
    list_filter = ("username",)                #可以过滤的字段名
    ordering = ("username",)                   #可以排序的字段名

admin.site.register(models.UserInfo,MyAdmin)   #MyAdmin类中定义的功能添加到UserInfo表中

再次查看UserInfo表数据
在这里插入图片描述

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合数据驱动方法与Koopman算子理论的递归神经网络(RNN)模型线性化方法,旨在提升纳米定位系统的预测控制精度与动态响应能力。研究通过构建数据驱动的线性化模型,克服了传统非线性系统建模复杂、计算开销大的问题,并在Matlab平台上实现了完整的算法仿真与验证,展示了该方法在高精度定位控制中的有效性与实用性。; 适合人群:具备一定自动化、控制理论或机器学习背景的科研人员与工程技术人员,尤其是从事精密定位、智能控制、非线性系统建模与预测控制相关领域的研究生与研究人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能预测控制;②为复杂非线性系统的数据驱动建模与线性化提供新思路;③结合深度学习与经典控制理论,推动智能控制算法的实际落地。; 阅读建议:建议读者结合Matlab代码实现部分,深入理解Koopman算子与RNN结合的建模范式,重点关注数据预处理、模型训练与控制系统集成等关键环节,并可通过替换实际系统数据进行迁移验证,以掌握该方法的核心思想与工程应用技巧。
基于粒子群算法优化Kmeans聚类的居民用电行为分析研究(Matlb代码实现)内容概要:本文围绕基于粒子群算法(PSO)优化Kmeans聚类的居民用电行为分析展开研究,提出了一种结合智能优化算法与传统聚类方法的技术路径。通过使用粒子群算法优化Kmeans聚类的初始聚类中心,有效克服了传统Kmeans算法易陷入局部最优、对初始值敏感的问题,提升了聚类的稳定性准确性。研究利用Matlab实现了该算法,并应用于居民用电数据的行为模式识别与分类,有助于精细化电力需求管理、用户画像构建及个性化用电服务设计。文档还提及相关应用场景如负荷预测、电力系统优化等,并提供了配套代码资源。; 适合人群:具备一定Matlab编程基础,从事电力系统、智能优化算法、数据分析等相关领域的研究人员或工程技术人员,尤其适合研究生及科研人员。; 使用场景及目标:①用于居民用电行为的高效聚类分析,挖掘典型用电模式;②提升Kmeans聚类算法的性能,避免局部最优问题;③为电力公司开展需求响应、负荷预测用户分群管理提供技术支持;④作为智能优化算法与机器学习结合应用的教学与科研案例。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,深入理解PSO优化Kmeans的核心机制,关注参数设置对聚类效果的影响,并尝试将其应用于其他相似的数据聚类问题中,以加深理解拓展应用能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值