第四章 Django 模板系统

news/2024/5/20 1:32:45/文章来源:https://blog.csdn.net/weixin_42434700/article/details/134959558

第一章 Django 基本使用
第二章 Django URL路由系统
第三章 Django 视图系统
第四章 Django 模板系统
第五章 Django 数据模型系统(基本使用)
第六章 Django 数据模型系统(多表操作)
第七章 Django 用户认证与会话技术
第八章 Django CSRF防护


文章目录

  • 模板系统
    • 模板是什么
    • 变量
      • 路由
      • 视图
      • 验证
    • 设置全局变量
      • contexts文件创建
      • 配置文件
      • 网页
      • 验证
  • 流程控制:条件和循环
    • 标签:条件判断
      • 视图
      • 网页
      • 验证
      • 网页
      • 验证
    • 标签:循环
      • 视图
      • 网页
      • 验证
      • 标签:forloop变量
      • 视图
      • 网页
      • 验证
    • 操作符
      • 举例:首字母大写
        • 视图
        • 网页
      • 验证
      • 自定义过滤器
        • 自定义
        • 网页
        • 验证
  • 注释
    • 模板继承
      • 路由
      • 视图
      • 网页
      • 验证
    • 模板导入
      • 网页
      • 验证
    • 引入静态文件
      • 网页
      • 验证


模板系统

模板是什么

Django模板系统:用于自动渲染一个文本文件,一般用于HTML页面。模板引擎渲染的最终HTML内容返回给客户端浏览器
模板文件有两部分组成:
静态部分,例如html\css\js
动态部分,django模板语言,类似jinja语法

变量

变量定义:再函数视图render中的context传入,类似于字典对象
变量再模板中引用,格式:{{ key }}

路由

# devops/urls.py
from django.urls import path
from myapp import viewsurlpatterns = [re_path('templates/$',views.templates)
]

视图

# myapp/views.py
from django.shortcuts import render,HttpResponse,redirect
import os
from django.http import StreamingHttpResponse,FileResponse
from django.http import JsonResponse
def templates(request):user = {'user':'wang','LA':{ 'age': '22','sex':'go'}}return render(request,'templates.html',{ 'user' : user })

网页

# templates/templates.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>文件列表</title></head><body><h1>模板文件</h1>name: {{ user.user }}<br>age: {{ user.LA.age }}<br>sex: {{ user.LA.sex }}</body>
</html>

验证

http://49.232.221.200:8888/templates/
在这里插入图片描述

设置全局变量

示例:设置全局变量
1.再项目中创建contexts.py文件

def user(request):username = request.session.get('username')return {'username':username}

2.在settings.py文件中添加你的上下文处理器

contexts文件创建

# devops/contexts.py
def users(request):username = 'wang'return {'username':username}

配置文件

# devops/settings.py
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages','devops.contexts.users', ## 增加这一行],},},
]

网页

# templates/templates.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>文件列表</title></head><body><h1>模板文件</h1>name: {{ user.user }}<br>age: {{ user.LA.age }}<br>sex: {{ user.LA.sex }}<h3>姓名: {{ username }}</h3></body>
</html>
# templates/upload_list.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>文件列表</title></head><body>{% for i in file_list %}<a href="{% url 'download' i %}">{{ i }}</a><br>{% endfor %}<h3>姓名: {{ username }}</h3></body>
</html>

验证

两个访问路径都可以看到 姓名:wang
http://49.232.221.200:8888/templates/
在这里插入图片描述

http://49.232.221.200:8888/upload_list/
在这里插入图片描述

流程控制:条件和循环

标签:条件判断

Created with Raphaël 2.3.0 开始 表达式 代码块 结束 yes no

if条件判断:判定给定的条件是否满足(True或False),根据判断的结果决定执行的语句
语法:
{% if <表达式> %}
<内容块>
{% elif <表达式> %}
<内容块>
{% else %}
<内容块>
{% endif %}

视图

# myapp/views.py
from django.shortcuts import render,HttpResponse,redirect
import os
from django.http import StreamingHttpResponse,FileResponse
from django.http import JsonResponse
def templates(request):user = {'A':{ 'user':'wang', 'age': '22','sex':'go'},'B':{ 'user':'xing', 'age': '23','sex':'baby'},'C':{ 'user':'zhang','age': '24','sex':'tian'},}return render(request,'templates.html',{ 'user' : user })

网页

# templates/templates.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>文件列表</title></head><body><h1>模板文件</h1>{% if user.B.age == '43' %}name: {{ user.B.user }}<br>age: {{ user.B.age }}<br>sex: {{ user.B.sex }}<br>{% else %}{{ user.B.user }} 不等于 23{% endif %}<br><h3>姓名: {{ username }}</h3></body>
</html>

验证

在这里插入图片描述

网页

# templates/templates.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>文件列表</title></head><body><h1>模板文件</h1>{% if user.B.age == '23' %}name: {{ user.B.user }}<br>age: {{ user.B.age }}<br>sex: {{ user.B.sex }}<br>{% else %}{{ user.B.user }} 不等于 23{% endif %}<br><h3>姓名: {{ username }}</h3></body>
</html>

验证

在这里插入图片描述

标签:循环

在这里插入图片描述

for循环:一般用于遍历数据类型的元素进行处理,例如列表。
语法:
{% for <变量> in <序列> %}
<内容块>
{% endfor %}

视图

# myapp/views.py
from django.shortcuts import render,HttpResponse,redirect
import os
from django.http import StreamingHttpResponse,FileResponse
from django.http import JsonResponse
def templates(request):user = {'A':{ 'user':'wang', 'age': '22','sex':'go'},'B':{ 'user':'xing', 'age': '23','sex':'baby'},'C':{ 'user':'zhang','age': '24','sex':'tian'},}return render(request,'templates.html',{ 'user' : user })

网页

# templates/templates.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>文件列表</title></head><body><table border="1"><thead><tr><th>用户名</th><th>年龄</th><th>性别</th></tr></thead><thead><br><br>{% for k, v in user.items %}<tr><td>{{ v.user }}</td><td>{{ v.age }}</td><td>{{ v.sex }}</td></tr>{% endfor %}</thead></table></body>
</html>

验证

http://49.232.221.200:8888/templates/
在这里插入图片描述

标签:forloop变量

在Django模板中,forloop是一个特殊的变量,它包含了当前循环的相关信息。这个变量是在{% for %}标签中生成的,用于获取当前循环进展的信息
变量描述forloop.counter循环计数器,当前循环的索引从1开始forloop.counter0循环计数器,当前循环的索引从0开始forloop.revcounter当前

变量描述
forloop.counter循环计数器,当前循环的索引从1开始
forloop.counter0循环计数器,当前循环的索引从0开始
forloop.revcounter当前循环倒数计数,最后一次循环为1,反向计数
forloop.revcounter0当前循环倒数计数,最后一次循环为0,反向计数
forloop.first当前循环为第一个循环时,该变量为True
forloop.last当前循环为最后一个循环时,该变量为True
forloop.parentloop再嵌套循环中,指向当前循环的上级循环

视图

# myapp/views.py
from django.shortcuts import render,HttpResponse,redirect
import os
from django.http import StreamingHttpResponse,FileResponse
from django.http import JsonResponse
def templates(request):user = {'A':{ 'user':'wang', 'age': '22','sex':'go'},'B':{ 'user':'xing', 'age': '23','sex':'baby'},'C':{ 'user':'zhang','age': '24','sex':'tian'},}return render(request,'templates.html',{ 'user' : user })

网页

# templates/templates.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>文件列表</title></head><body><table border="1"><thead><tr><th>编号</th><th>用户名</th><th>年龄</th><th>性别</th></tr></thead><thead><br><br>{% for k, v in user.items %}<tr>{% if forloop.first %}当前第一个循环{% else %}不是第一个循环{% endif %}{{ forloop.first}}<td>{{ forloop.counter }}</td><td>{{ v.user }}</td><td>{{ v.age }}</td><td>{{ v.sex }}</td></tr>{% endfor %}</thead></table></body>
</html>

验证

http://49.232.221.200:8888/templates/
在这里插入图片描述

操作符

变量描述
比较操作符== 等于
!= 不等于
>大于
< 小于
>= 大于等于
<= 小于等于
逻辑操作符and 与or 或
成员操作符not 逻辑否定
in 包含在内
## 常用过滤器

过滤器:在变量被显示前修改值的一种方法。
语法:{{ value | 过滤器:参数 }}

过滤器说明示例
add将两个值转换为整数相加{{ 11 | add:“6” }} 结果 17
cut切除字符。从给定字符串中删除arg的所有值。{{ “hello world” | cut:“w” }} 结果 hello orld
default如果值的计算结果为 False,则使用给定的默认值。否则,使用该值。{{ “” | default:“hello world” }} 结果 hello world
first返回第一个元素{ “hello world” | first }} 结果 h
last返回最后一个元素{ “hello world” | last }} 结果 d
join使用字符串连接列表,如Python的 str.join(list){ abc | join:“,” }} 结果 1,2,3 # abc = [1,2,3]
length返回值的长度。这适用于字符串和列表{{ “hello world” | length }} 结果 11
lower将字 符串转换为小写{ “AAA” | lower }} 结果 aaa
upper将字符串转换为大写{ “aaa” | upper }} 结果 AAA
slice切片, 类似于Python中的切片操作。{ “hello world” | slice:“2:” }} 结果 llo world
title所有单词首字母大写{ “aaa” | title }} 结果 Aaa
truncatechars如果长度大于指定的字符数,则截断字符串。截断的字符串将以可翻译的省略号序列(“…”)结束{{ “hello world” | truncatechars:2 }} 结果 h…
filesizeformat将该值格式化为“人类可读”文件大小(即 ‘13 KB‘,‘4.1 MB‘,‘102 bytes‘ 等)。{{ 10000 | filesizeformat }} 结果 9.8 KB
floatformat当不带参数时,将一个浮点数舍入到小数点后一位,但前提是要显示一个小数部分。{{ 1.33333333 | floatformat }} 结果 1.3floatformat:2 指定保留的小数位数

举例:首字母大写

视图
# myapp/views.py
from django.shortcuts import render,HttpResponse,redirect
import os
from django.http import StreamingHttpResponse,FileResponse
from django.http import JsonResponse
def templates(request):user = {'A':{ 'user':'wang', 'age': '22','sex':'go'},'B':{ 'user':'xing', 'age': '23','sex':'baby'},'C':{ 'user':'zhang','age': '24','sex':'tian'},}return render(request,'templates.html',{ 'user' : user })
网页
# templates/templates.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>文件列表</title></head><body><table border="1"><thead><tr><th>编号</th><th>用户名</th><th>年龄</th><th>性别</th></tr></thead><thead><br><br>{% for k, v in user.items %}<tr>{% if forloop.first %}当前第一个循环{% else %}不是第一个循环{% endif %}{{ forloop.first}}<td>{{ forloop.counter }}</td><td>{{ v.user | upper  }}</td><td>{{ v.age }}</td><td>{{ v.sex }}</td></tr>{% endfor %}</thead></table></body>
</html>

验证

http://49.232.221.200:8888/templates/
在这里插入图片描述

自定义过滤器

1、在app下创建templatetags目录
2、自定义过滤器函数
from django.template import Library
register = Library() # 注册过滤器对象
@register.filter # 通过装饰注册自定义过滤器
def func(n):
return n / 2
3、在模板中使用
{% load filters %}
{{ 123 | func }}

# devops/settings.py
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',"myapp",   # 增加这一行
]
自定义
# myapp/templatetags/custom.py
from django.template import Library
register = Library() # 注册过滤器对象
@register.filter # 通过装饰注册自定义过滤器
def func(n):return n / 2
网页
# templates/templates.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>文件列表</title>{% load custom %} # 引用自定义模块</head><body><br>{{ 123 | func }}<br>{{ 666 | func }}</br></body>
</html>
验证

http://49.232.221.200:8888/templates/
在这里插入图片描述

注释

模板中注释语法:

{# 注释内容 #}

模板继承

模板继承主要是为了提高代码重用,减轻开发人员的工作量。
典型应用:网站的头部、尾部信息。
1、定义一个基础模板,也称为母板,这个页面存放整个网站共用的内容
templates/base.html
2、在子模板继承这个母版
{% extends ‘base.html’ %}
3、在基础模板预留子模板差异化内容
{% block 名称 %} 预留区域 {% endblock %}
4、在子模板里同样语法引用并填充预留区域内容

路由

# devops/urls.py
from django.urls import path,re_path
from myapp import viewsurlpatterns = [re_path('about/$',views.about),re_path('news/$',views.news)
]

视图

# myapp/views.py
from django.shortcuts import render,HttpResponse,redirectdef about(request):return render(request, 'about.html')def news(request):return  render(request, 'news.html')

网页

# templates/base.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>{% block title %}{% endblock %}</title>{% block style %} {% endblock %}
</head>
<body>
<nav class="nav"><a href="#">仪表盘</a><a href="#">发布管理</a><a href="#">容器管理</a>
</nav>
<div class="context">{% block context %} 预留区域 {% endblock %}
</div>
<footer class="footer">底部
</footer>
</body>
</html>
# templates/about.html
{% extends 'base.html' %}
{% block title %}关于我们{% endblock %}
{% load static %}
{% block style %}
{% endblock %}
{% block context %}这是关于我们
{% endblock %}
# templates/news.html
{% extends 'base.html' %}
{% block title %}新闻{% endblock %}
{% block context %}这是新闻页面
{% endblock %}

验证

http://49.232.221.200:8888/about/
在这里插入图片描述

http://49.232.221.200:8888/news/
在这里插入图片描述

模板导入

模板导入:导入一个模板(一般是某个网页功能)到当前模板
接着模板继承的写
路由、视图都不变

网页

# templates/htllo.html
<div style="background-color: red;width: 100px;height: 100px">这是一个功能模板
</div>
# templates/about.html
{% extends 'base.html' %}
{% block title %}关于我们{% endblock %}
{% load static %}
{% block style %}
{% endblock %}
{% block context %}这是关于我们
{% include 'hello.html' %}
{% endblock %}
# templates/news.html
{% extends 'base.html' %}
{% block title %}新闻{% endblock %}
{% block context %}这是新闻页面
{% include 'hello.html' %}
{% endblock %}

验证

http://49.232.221.200:8888/about/
在这里插入图片描述

http://49.232.221.200:8888/news/
在这里插入图片描述

引入静态文件

• STATICFILES_DIRS:告诉Django哪个目录是“静态文件的文件夹”
• STATIC_ROOT:指出浏览器访问静态文件“根路径”
1、在settings.py配置
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
STATICFILES_DIRS = (
os.path.join(BASE_DIR, ‘static’),
)
STATIC_URL = ‘/static/’
2、在模板文件引用静态文件
<link rel=“stylesheet” href=“/static/main.css”>
或者
<link rel=“stylesheet” href="{% static ‘main.css’ %}

# devops/settings.py
# 最下边新增
# BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file))) 这一个里边默认就用,可以确认下,没有的话添加
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),
)

创建css

# myapp/static/main.css
.test {color: red;
}

网页

# templates/about.html
{% extends 'base.html' %}
{% block title %}关于我们{% endblock %}
{% load static %}
{% block style %}<link rel="stylesheet" href="{% static 'main.css' %}">
{% endblock %}
{% block context %}这是关于我们
{% include 'hello.html' %}<div class="test">这是引用的外部css
</div>
{% endblock %}

验证

http://49.232.221.200:8888/about/
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_568836.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32在CTF中的应用和快速解题

题目给的是bin文件&#xff0c;基本上就是需要我们手动修复的固件逆向。 如果给的是hex文件&#xff0c;我们可能需要使用MKD进行动态调试 主要还是以做题为目的 详细的可以去看文档&#xff1a;https://pdf1.alldatasheet.com/datasheet-pdf/view/201596/STMICROELECTRONIC…

CentOS 7 源码部署 Nginx

文章目录 1. 概述2. 部署示例2.1 下载和解压 Nginx 源码2.2 安装编译依赖包2.3 编译和安装2.4 启动 Nginx2.5 配置防火墙2.6 设置 Nginx 为系统服务2.7 配置访问 3. 扩展知识 1. 概述 Nginx 是一款高性能的开源 Web 服务器软件&#xff0c;广泛应用于互联网领域。本篇博客将介…

【Flink系列七】TableAPI和FlinkSQL初体验

Apache Flink 有两种关系型 API 来做流批统一处理&#xff1a;Table API 和 SQL Table API 是用于 Scala 和 Java 语言的查询API&#xff0c;它可以用一种非常直观的方式来组合使用选取、过滤、join 等关系型算子。 Flink SQL 是基于 Apache Calcite 来实现的标准 SQL。无论输…

2024年网络安全(黑客)——自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

深度学习在人体动作识别领域的应用:开源工具、数据集资源及趋动云GPU算力不可或缺

人体动作识别检测是一种通过使用计算机视觉和深度学习技术&#xff0c;对人体姿态和动作进行实时监测和分析的技术。该技术旨在从图像或视频中提取有关人体姿态、动作和行为的信息&#xff0c;以便更深入地识别和理解人的活动。 人体动作识别检测的基本步骤包括&#xff1a; 数…

使用kibana查看es数据

前提 已安装好es还有kibana&#xff0c;启动es及kibana 修改kibana配置文件 在kibana文件中配置es的地址及索引&#xff0c;我的kibana安装在mac端了 修改配置文件 /usr/local/opt/kibana/config/kibana.yml 重启kibana 配置kibana 下面查询数据 例如查询 traceId 为192…

【TES720D-KIT】基于国内某厂商FMQL20S400全国产化ARM开发套件(核心板+底板)

板卡概述 TES720D-KIT是专门针对我司TES720D&#xff08;基于国内某厂商FMQL20S400的全国产化ARM核心板&#xff09;的一套开发套件&#xff0c;它包含1个TES720D核心板&#xff0c;加上一个TES720D-EXT扩展底板。 FMQL20S400是国内某厂商电子研制的全可编程融合芯片&#xf…

案例044:基于微信小程序的消防隐患在线举报系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

Python将已标注的两张图片进行上下拼接并修改、合并其对应的Labelme标注文件(v2.0)

Python将已标注的两张图片进行上下拼接并修改、合并其对应的Labelme标注文件&#xff08;v2.0&#xff09; 前言前提条件相关介绍实验环境上下拼接图片并修改、合并其对应的Labelme标注文件代码实现输出结果 前言 此版代码&#xff0c;相较于Python将已标注的两张图片进行上下拼…

如何使用ArcGIS Pro裁剪影像

对影像进行裁剪是一项比较常规的操作&#xff0c;因为到手的影像可能是多种范围&#xff0c;需要根据自己需求进行裁剪&#xff0c;这里为大家介绍一下ArcGIS Pro中裁剪的方法&#xff0c;希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的影像和行政区…

c语言:指针与数组

目录 使用指针访问数组 使用第一个元素获取数组首地址 使用数组名获取数组首地址 使用指针访问数组等价于下标访问 使用指针访问数组 指针类型的加减运算可以使指针内保存的首地址移动。指针类型加n后。首地址向后移动 n * 步长 字节。 指针类型减n后。首地址向前移动 n *…

26种主流的神经网络偏微分方程求解方法汇总

偏微分方程&#xff08;PDE&#xff09;是数学中一门重要的分支&#xff0c;应用范围广泛涉及自然科学、工程技术、生物学领域等。然而我们都知道&#xff0c;偏微分方程的求解过程异常艰难&#xff0c;如果碰上了特别复杂的&#xff0c;传统的计算方法可能需要数百万个CPU小时…

智能高效|AIRIOT智慧货运管理解决方案

随着全球贸易的增加和消费需求的不断扩大&#xff0c;货运行业面临更大的压力&#xff0c;传统货运行业运输效率低下、信息不透明&#xff0c;往往存在如下的运维问题和管理痛点&#xff1a; 无法实时定位和追踪信息&#xff1a;无法提供实时的货物位置信息&#xff0c;以便随…

解决firefox(火狐)浏览器使用transform: scale导致的border不显示或显示不全的问题;

最近火狐遇到了此问题&#xff0c;查了许久没有解决办法也有说是因为火狐不支持小于1px单位的&#xff0c;也有说火狐浏览器本身的问题&#xff0c;然后也没有解决方案&#xff0c;最后没办法只能用最笨的方法解决。。。。 只针对Firefox使用CSS&#xff0c;使用’-moz-documen…

poe与chatgpt那个功能更强大

在当前的人工智能领域&#xff0c;Poe Al Chat以其卓越的聊天能力和实用的功能&#xff0c;受到了大家的广泛关注和喜爱。本文好为您个绍Poe Al Chat的功能&#xff0c;以及我们国内用户如何进行充值订阅。Poe Al Chat是一个基于OpenAl的GPT模型开发的人工智能聊天工具。它能够…

代立冬:基于Apache Doris+SeaTunnel 实现多源实时数据仓库解决方案探索实践

大家好&#xff0c;我是白鲸开源的联合创始人代立冬&#xff0c;同时担任 Apache DolphinScheduler 的 PMC chair 和 SeaTunnel 的 PMC。作为 Apache Foundation 的成员和孵化器导师&#xff0c;我积极参与推动多个开源项目的发展&#xff0c;帮助它们通过孵化器成长为 Apache …

最简单的pixel刷机和安装面具、lsposed

一 下载手机对应的系统 1&#xff0c;手机usb连接然后重启进入Fastboot模式&#xff1a;adb reboot bootloader2&#xff0c;找到你下载的系统&#xff0c;Windows 系统 直接运行 flash-all.bat上图 &#xff1a;左边就是安卓11和12的系统&#xff0c;右边是对应的手机型号 下…

简记修复改etc下profile失败的补救措施

现象 下午配置环境变量一个小小的失误&#xff0c;把etc文件夹下的profile改崩了&#xff0c;导致很多基本命令都用不了&#xff0c;服务器出现了下面这种情况。 [rootxxxx ~]# vi /etc/profile -bash: vi: command not found [rootxxxxx~]# vi -bash: vi: command not found…

深度学习第5天:GAN生成对抗网络

☁️主页 Nowl &#x1f525;专栏 《深度学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 ​​ 文章目录 一、GAN1.基本思想2.用途3.模型架构 二、具体任务与代码1.任务介绍2.导入库函数3.生成器与判别器4.预处理5.模型训练6.图片生成7.不同训练轮次的结果对比 一…

关于uniapp X 的最新消息

uni-app x 是什么&#xff1f; uni-app x&#xff0c;是下一代 uni-app&#xff0c;是一个跨平台应用开发引擎。 uni-app x 没有使用js和webview&#xff0c;它基于 uts 语言。在App端&#xff0c;uts在iOS编译为swift、在Android编译为kotlin&#xff0c;完全达到了原生应用的…