Django框架模块系统---视图函数----简单应用

基于Django框架开发的金融智能分析系统 金融智能分析系统是一个基于Django框架开发的金融文本分析平台,集成了网络爬虫、自然语言处理、知识图谱和金融数据分析等功能。该系统可以自动获取金融新闻,进行情感分析和文本摘要,构建金融知识图谱,并提供可视化展示。 阅读详情

请求流程和视图函数

流程

(1) .启动服务端等待客户端来连接

(2) .浏览器发出请求然后经过wsgiref.py模块。

(3) .执行urls.py中的列表,请求url和列表中的参数进行匹配。

(4) .匹配成功后执行对应的视图函数。

(5) .将结果返回给浏览器。

(6) .断开连接

视图函数

(1) .函数名称任意,但是一般要见名知意(看见函数名称就知道做什么事情)

(2) .函数至少有一个参数,一般命名为request,request参数是django.http模块中的 HttpRequest类的一个对象包含了所有的请求信息,例如请求路径,参数等等。

(3) .返回值 HttpResponse的实例可以给浏览器返回一段文本信息。

views.py文件

一般我们将视图函数单独的写在一个脚本文件中,一般名称为views.py

Django模块系统

模板系统(template)

向页面中填充内容

模板系统常用符号

如果在模板中需要解析变量使用{{}}

如果在模板中进行逻辑相关操作使用{%%}

注释 {# … #},单行注释【ctrl+/】,多行注释【ctrl+ship+/】

变量

在Django的模板系统中变量使用的语法:{{ 变量名 }}。

当模版引擎遇到变量,就会用值替换掉变量。

变量的命名可以是字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号。

如果使用的变量不存在, 它被默认设置为(空字符串) 。

HTML中内容体:{{name}} {{age}}{{height}}

视图中函数
def third(request):
     return render(request,'third.html',{'name':'老王','age':38,'height':1.79})
#使用字典的key值连接,将变量替换为values值。
扩展
def third2(request):
    name='老王'
    age=19
    height=1.7
    print(locals())
    # return render(request,'third2.html',{'name':name,'age':age,'height':hight})
    return render(request,'third2.html',locals())

url.py文件
urlpatterns = [
    path('admin/', admin.site.urls),
    path('third/',view.third) ——》路径,函数名。
]
点(.)的特殊含义

当模版系统遇到点("."),它将以以下顺序查询:

字典查询 :如果向页面传递的是一个字典类型变量,变量名.key 获取值,

属性或方法查询:如果传递一个对象,变量名.变量名

(此变量名有可能是属性,有可能是无参数方法名称)。
数字索引查询:如果传递一个列表,变量名.索引。

view.py 文件
def index02(request):
    """传递字典参数"""
    data = {'name': '刘瑞'}
    return render(request, 'index02.html', {'data': data})

class Person(object):
    def __init__(self, name):
        self.name = name

    def dream(self):
        return "{}的梦想是做一名老师".format(self.name)


def index03(request):
    """传递对象"""
    person = Person('张三')
    return render(request, 'index02.html', {'person': person})


def index04(request):
    """传递列表"""
    lst = ['zs', 'ls', 'ww']
    return render(request, 'index02.html', {'lst': lst})

html文件
{{user_info.name}},年龄{{user_info.age}},身高{{user_info.height}}
{姓名{{person.name}},年龄{{person.age}},梦想{{person.dream}}
{{ name_lst.0 }}——》{{ name_lst.1 }}——》{{ name_lst.2 }}

Filters(过滤器)

在Django的模板语言中,通过使用 过滤器 来改变变量的显示。(注:过滤器是函数)

过滤器的语法: {{ 变量名|过滤器名称:参数 }}

使用管道符"|"来应用过滤器。例如:{{ name|lower }}会将name变量应用lower过滤器之后再显示它的值。

default

default,给定默认值。如果一个变量是false或者为空,使用给定的默认值。 否则,使用变量的值。

{{ value|default:“nothing”}}——》如果value没有传值或者值为空的话就显示nothing

length

返回值的长度,作用于字符串和列表。

{{ value|length }},返回value的长度,如 value=[‘a’, ‘b’, ‘c’, ‘d’]的话,就显示4.

slice

切片

格式:{{value|slice:“2:-1”}} ,返回从第二个字符到最后一个字符。

date

日期格式化过滤器

格式:{{ value|date:“Y-m-d H:i:s”}} 下面加粗为常用

视图view.py 
import datetime
def third9(request):
    return render(request, 'third2.html', {'time':datetime.datetime.now() })
html
{{ time }}——》{{ time|date:'Y-m-d H:i:s' }}
格式化字符描述示例输出
a'a.m.‘或’p.m.’(请注意,这与PHP的输出略有不同,因为这包括符合Associated Press风格的期间)‘a.m.’
A‘AM’或’PM’。‘AM’
b月,文字,3个字母,小写。‘jan’
B未实现。
cISO 8601格式。 (注意:与其他格式化程序不同,例如“Z”,“O”或“r”,如果值为naive datetime,则“c”格式化程序不会添加时区偏移量(请参阅datetime.tzinfo) 。2008-01-02T10:30:00.000123+02:00或2008-01-02T10:30:00.000123如果datetime是天真的
d月的日子,带前导零的2位数字。’01’到’31’
D一周中的文字,3个字母。“星期五”
e时区名称 可能是任何格式,或者可能返回一个空字符串,具体取决于datetime。‘’、‘GMT’、’-500’、'US/Eastern’等
E月份,特定地区的替代表示通常用于长日期表示。‘listopada’(对于波兰语区域,而不是’Listopad’)
f时间,在12小时的小时和分钟内,如果它们为零,则分钟停留。 专有扩展。‘1’,‘1:30’
F月,文,长。‘一月’
g小时,12小时格式,无前导零。‘1’到’12’
G小时,24小时格式,无前导零。‘0’到’23’
h小时,12小时格式。‘01’到’12’
H小时,24小时格式。’00’到’23’
i分钟。’00’到’59’
I夏令时间,无论是否生效。‘1’或’0’
j没有前导零的月份的日子。‘1’到’31’
l星期几,文字长。‘星期五’
L布尔值是否是一个闰年。True或False
m月,2位数字带前导零。’01’到’12’
M月,文字,3个字母。“扬”
n月无前导零。‘1’到’12’
N美联社风格的月份缩写。 专有扩展。‘Jan.’,‘Feb.’,‘March’,‘May’
oISO-8601周编号,对应于使用闰年的ISO-8601周数(W)。 对于更常见的年份格式,请参见Y。‘1999年’
O与格林威治时间的差异在几小时内。‘+0200’
P时间为12小时,分钟和’a.m。’/‘p.m。’,如果为零,分钟停留,特殊情况下的字符串“午夜”和“中午”。 专有扩展。‘1 am’,‘1:30 pm’ / t3>,‘midnight’,‘noon’,‘12:30 pm’ / T10>
rRFC 5322格式化日期。‘Thu, 21 Dec 2000 16:01:07 +0200’
s秒,带前导零的2位数字。’00’到’59’
S一个月的英文序数后缀,2个字符。‘st’,‘nd’,‘rd’或’th’
t给定月份的天数。28 to 31
T本机的时区。‘EST’,‘MDT’
u微秒。000000 to 999999
U自Unix Epoch以来的二分之一(1970年1月1日00:00:00 UTC)。
w星期几,数字无前导零。‘0’(星期日)至’6’(星期六)
WISO-8601周数,周数从星期一开始。1,53
y年份,2位数字。‘99’
Y年,4位数。’1999年’
z一年中的日子0到365
Z时区偏移量,单位为秒。UTC以西时区的偏移量总是为负数,对于UTC以东时,它们总是为正。-43200到43200
safe

Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义。如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。

cut

移除value中所有的与给出的变量相同的字符串

格式:{{ value|cut:’ ’ }},如果value为’i love you’,那么将输出’iloveyou’.剪切掉空格

join

使用拼接符连接列表,例如Python的str.join(list)

格式: {{value|join:”_”}} 如果value为’asdf’,那么将输出’a_s_d_f’

过滤器注意事项
  1. '|'左右没有空格
  2. django的模板语言中提供了大约六十个内置过滤器。

tags标签

使用Django中的标签可以在模板中做一些简单的逻辑判断。

标签和{%%}配合使用。

for标签
<ul>
    {% for name in name_lst %}
{#        <li>{{ forloop.counter }}{{ name }}</li>正序(从1开始)  counter0(从0开始) #}
{#        <li>{{ forloop.revcounter }}{{ name }}</li> 倒序(到1结束)revcounter0(到0结束)#}
{#    <li>{{ forloop.revcounter0 }}—》{{ name }}—》{{ forloop.first }}—》{{forloop.last }}</li>#}  {#判断是否开头 ,结束#}
    {% endfor %}
</ul>

for循环可用的一些参数:

VariableDescription
forloop.counter当前循环的索引值(从1开始)
forloop.counter0当前循环的索引值(从0开始)
forloop.revcounter当前循环的倒序索引值(从1开始)
forloop.revcounter0当前循环的倒序索引值(从0开始)
forloop.first当前循环是不是第一次循环(布尔值)
forloop.last当前循环是不是最后一次循环(布尔值)
for…empty标签

如果变量名不存在或者内容为空的时候显示{%empty%}中的内容,否则不执行。

<ul>

    {% for name in name_list %}
        <li>{{ name }}</li>

    {% empty %}
        空空如也!!!
    {% endfor %}

</ul>
if标签

注: if 语句支持 and、or、==、<、>、!=、<=,>=,in、not in、is、is not判断。

<ul>
    {% if name|length > 15 %}
        用户名长度符合要求!
    {% else %}
        不符合
    {% endif %}

</ul>
if…elif…else 标签
{% if name_length|length > 6 %}
    姓名长度符合
{% elif age == 20 %}
    性别符合
{% else %}
    不符合
{% endif %}
[Python+Django]Web学生信息管理系统数据库设计及系统实现 本文我们完成数据的设计,并通过Django框架完成数据库构建同时利用Django框架模式实现学生信息管理系统的功能。 简单的包装下毕设应该没问题了。 阅读详情

相关推荐

Windows 64位上使用Django+Apache+mod_wsgi部署Python应用

Django作为一个高级Python Web框架,其设计初衷是让开发过程快速、干净并且更安全。它遵循“约定优于配置”的原则,意味着只需编写少量代码即可完成许多任务,同时仍保持灵活性以应对各种复杂场景。Apache服务器在现代网络架构中扮演着至关重要的角色。它是一个开源的、跨平台的Web服务器软件,以其稳定、安全和高效的特点被广泛使用。Apache Web服务器的历史始于1995年,当时是一个开源项目的分支,用于改进NCSA HTTPd服务器。

weixin_42284380的博客 324

手把手带你学会Django2.0框架

本课程是基于Python3.8和Django2.1.5框架进行讲解,主要内容有:1、模型模块学习内容大概是:模型分析、模型创建、模型迁移、模型查询等操作2、视图模块学习内容大概是:Request、Response、Cookie、Session等3、模板学习学习内容大概是:模板语言、过滤器、转义等4、其他常用模块学习内容大概是:富文本、分页、全文检索、缓存、管理后台、中间件等5、项目个人博客内容大概是:轮播图、首页文章、**评论文章、评论、登录注册、标签、分类等6、部署内容大概是:uWSGI、Nginx7、安全内容大概是:CSRF、XSS、点击劫持、SQL注入等

视频教学Python+Django

Python教程,视频教学,web开发框架Django手把手教学。

【开发心得】Django架构图一目了然

今天看到了一篇很不错的文章,如何设计组织Diango模板。 里面详细介绍了如何去实现静态html文件的母版,写的不错,有兴趣的朋友可以去仔细研究一下。 本文主要记录一下个人的一些理解,为今后做Django的开发积累一些小经验。

目标范式 3088

基于django的人脸检测Web平台搭建(基于Opencv)

通过django搭建的人脸检测web平台,以单独的api接口形式对外提供调用

电子纸价签实战:基于SSD1680的墨水屏驱动开发与优化

本文详细介绍了基于SSD1680驱动芯片的电子纸价签开发实战,涵盖硬件连接、驱动框架搭建、核心流程解析及性能优化。重点剖析了初始化配置、波形文件加载、图像数据写入与刷新触发等关键步骤,并提供了功耗优化、显示效果提升及代码健壮性等实用避坑指南,帮助开发者高效实现稳定低功耗的墨水屏驱动。

weixin_28278377的博客 231

Python攻城师的成长————Django框架(视图层)

今日学习目标 学习Django框架(视图层) 文章目录今日学习目标学习内容一、虚拟环境二、django路由层版本区别三、视图函数的返回值HTML响应2.JsonResponse四、接收文件数据request其他方法五、FBV与CBV(基于函数的视图、基于类的视图)六、模板语法传值 学习内容 虚拟环境 django路由层版本区别 视图函数的返回值 接收文件数据 FBV与CBV(基于函数的视图、基于类的视图) 模板语法传值 一、虚拟环境 不同的项目应该有各自独立的解释器环境,最大化节省资源,实际

fonnt的博客 450

ENVI5.6 自动化流程:GF系列卫星影像批处理与质量优化

本文详细介绍了如何利用ENVI5.6构建针对GF-2、GF-6、GF-7系列卫星影像的自动化批处理流水线。通过配置Batch Processing工具,实现从正射校正到图像融合的全流程批量处理,并分享参数设置、质量监控与故障排查的实战经验,旨在显著提升海量遥感影像的处理效率与成果质量。

efc1234567的博客 604

【django】过滤器和自定义过滤器

一、过滤器语法 语法如下: 使⽤管道符号 | 来应⽤过滤器,⽤于进⾏计算、转换操作,可以使⽤在变量、标签中。 如果过滤器需要参数,则使⽤冒号:传递参数。 变量 | 过滤器:参数 列举⼏个如下: safe,禁⽤转义,告诉模板这个变量是安全的,可以解释执⾏ length,⻓度,返回字符串包含字符的个数,或列表、元组、字典的元素个数。 default,默认值,如果变量不存在时则返回默认值。 data | default:‘默认值’。 date,⽇期,⽤于对⽇期类型的值进⾏字符串格式化。 常⽤的格式化字符

python全栈 1634

人脸情绪识别(使用深度学习和OpenCV)

基于opencv与深度学习的人脸情绪识别系统

mx0390304的博客 8251

解放双手:用KUKA示教器白键一键触发复杂工艺,自定义你的快捷指令

本文详细介绍了如何利用KUKA示教器的工艺白键功能,通过自定义快捷指令一键触发复杂工艺,显著提升自动化产线效率。文章涵盖UserTech技术栈解析、KRL脚本封装、人机交互视觉工程及工业实战策略,帮助工程师实现机械臂操作的高阶优化。

weixin_30379531的博客 433

Django视图函数 Django模块系统,过滤器,标签

请求流程和视图函数 流程 (1) .启动服务端等待客户端来连接 (2) .浏览器发出请求然后经过wsgiref.py模块。 (3) .执行urls.py中的列表,请求url和列表中的参数进行匹配。 (4) .匹配成功后执行对应的视图函数。 (5) .将结果返回给浏览器。 (6) .断开连接 视图函数 (1) .函数名称任意,但是一般要见名知意(看见函数名称就知道做什么事情) (2) .函数至少有一...

BeefpasteC的博客 702

解锁PyCharm+Deepseek:本地部署AI编程超能力

在本次探索中,我们成功地在 PyCharm 中实现了 DeepSeek 的本地化部署,这一过程虽然涉及多个步骤,但每一步都为我们开启 AI 编程大门奠定了基础。从安装最新版 PyCharm,确保我们拥有一个功能强大且兼容性良好的开发环境,到注册 DeepSeek 账号并获取 API Key,这是连接我们与强大 AI 能力的关键纽带。接着,在 PyCharm 中安装 Continue 插件并进行精细配置,让 DeepSeek 能够深度融入我们的编程流程。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 5550

Python web框架——Django

简介 django是一个免费的开源的python web框架。 它遵循了model-view-template(MVT)的架构模式。 由 Django Software Foundation 维护,一个以501©(3)非营利组织形式成立的独立组织。 django的主要目标是简单的去开发一个复杂的数据库驱动的网站。该框架强调组件的可重用性和“可插拔性”、代码更少、低耦合、快速开发以及“不要重复自己”...

xiabenshu的博客 1733

微信支付PHP集成指南

完整实现建议参考微信支付官方文档,包含更多支付场景(H5支付、Native支付等)和安全性处理细节。微信支付在PHP中的集成主要涉及服务端接口的调用和支付流程的实现。

bqq506615054的专栏 160

对角两对双差速轮AGV的平移、直行、转弯和原地旋转之PID控制

本示例将展示如何使用PID控制算法,控制具有对角线布置的两对双差速轮(左前和右后)的AGV,实现平移、直行、转弯和原地旋转等运动。通过对车辆的运动学和PID控制器的设计,我们可以精确地控制AGV的运动

xiaoc100200的博客 1512

Django之Models取MySQL数据,并使用Echarts展示

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、Django是什么? Django是 Python开发的一个免费开源的 Web 框架,几乎囊括了 Web 应用的方方面面,可以快速搭建网站。它自带管理后台、灵活的路由系统、强大的数据库ORM、易用的模块系统以及缓存系统。Django是一个MVC框架...

weixin_43909924的博客 4448

SAP MM ME21N保存前检查增强

想在ME21N保存前做一些数据检查, 可以做一个增强功能,  运行 CMOD 新增,   增强接口 输入 MM06E005  (  EXIT_SAPMM06E_012 ) ,在 NCLUDE ZXM06U43 .  里写代码功能。  例子如下: *&---------------------------------------------------------------------*

heng0757的专栏 1万+

Day60 Django框架--MVC框架简介&模板语言

一,web框架中的MVC框架简介   MVC框架:     MVC:全名是Model,View,Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),具有耦合性低、重用性高、生命周期成本低等优点   MTV框架: Model(模型):负责业务对象与数据库的对象(ORM)...

weixin_34395205的博客 191

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

基于python的网上招聘系统_s58l3(pycharm flask django mysql)

首页模块系统的首页,头部有三个选项框,第一个是主页,第二个是才艺技能平台,第三个是登录注册。点岗位,主题信息出现岗位基本信息列表点才艺技能平台,主题信息出现才艺技能列表,可点击才艺预览内容1.1.2 登录注册模块系统的登录注册包括登录和注册两个部分。所有系统用户使用后台管理功能都需要经行登录,根据选择不同的身份进入不同的管理界面。用户也可以申请注册账号,可以注册身份为企业用户和求职者但是不可以注册为管理员1.1.3 管理员模块系统的管理员模块可以分为。

专注分享bishe530的博客 556

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

django 转发_django模版层part01

Django模板层一 模板简介​ 在刚刚介绍完的视图层中我们提到,浏览器发送的请求信息会转发给视图进行处理,而视图在经过一系列处理后必须要有返回信息给浏览器。如果我们要返回html标签、css等数据给浏览器进行渲染,我们可以在视图中这么做from 上例所示,我们直接将HTML代码放到视图里,然后进行返回,这可以使我们很直观地看清楚浏览器从发送请求到看到前端界面内容的这个过程中视图的基本工作原...

weixin_39996134的博客 273

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

第10讲、Odoo 18框架设计原理全解析

Odoo 18作为最新的开源ERP系统,在架构设计上采用多层分离结构(表现层、业务逻辑层、数据访问层和存储层),并强化了模块化设计理念。前端采用基于OWL的组件化框架,提供声明式组件系统、虚拟DOM等现代化特性,通过XML模板和JavaScript实现UI开发。后端核心是高度封装的ORM系统,支持模型定义、CRUD操作和事务管理。系统遵循MVC模式,兼具多进程服务架构优势,实现了业务逻辑与界面展示的清晰分离。与Django/Flask等框架相比,Odoo 18在ERP场景下展现出更完整的业务功能集成和模块化

Melon的博客 1639

Python基于Django的在线问卷调查系统的设计与实现:功能全面,体验卓越

Python基于Django的在线问卷调查系统的设计与实现:功能全面,体验卓越 去发现同类优质开源项目:https://gitcode.com/ 在线问卷调查系统的设计与实现,是现代信息化社会数据收集的重要方式。今天,我们要介绍的这款基于Python和Django框架开发的在线问卷调查系统,以其强大的功能和简易的操作,正成为越来越多开发者和企业的首选。 项目介绍 Python基于Django的在线...

gitblog_06737的博客 473

基于Django与Ansible的智能运维管理系统设计与实现

基于Django与Ansible的智能运维管理系统是一个面向企业IT运维场景的综合性管理平台,旨在通过自动化、集成化和可视化的手段,提升运维效率、保障系统安全、降低管理成本。该系统采用Python作为核心开发语言,基于Django框架构建,集成了Ansible自动化运维工具、Celery分布式任务队列、Redis缓存数据库等关键技术,实现了从基础设施管理到应用部署的全流程覆盖。 系统主要功能模块包括:用户与权限管理模块,支持多级用户组和细粒度权限控制,确保系统访问安全;资产管理模块,实现对服务器、网络设备

ztt123654的博客 1097

技术选型指南:React、Spring Boot、MySQL等主流框架对比与实践

技术选型是软件开发中的核心环节,涉及从概念设计到工程落地的全过程。其基本原理是基于项目需求、团队能力和业务场景,通过系统化评估选择最适合的技术组合。在Web开发领域,前端框架如React、Vue、Angular各有特点,React以其灵活的JSX语法和虚拟DOM技术著称,Vue凭借渐进式设计和温和学习曲线受到青睐,Angular则提供完整的企业级解决方案。后端框架方面,Spring Boot适合高并发企业应用,Express.js以轻量异步见长,Django则强调开箱即用的开发效率。数据库选型需权衡关系型与

weixin_33785108的博客 556

解决错误TypeError: module.__init__() takes at most 2 arguments (3 given)

报这个错误,那么就要把焦点对准模块导入上,多半是这里的问题 这是我的错误: 我的类视图导View有问题,django不能识别这样的导包方式,应这样导入: 类视图view大写: ...

weixin_45616519的博客 2696
上一篇: 框架---根据不同的路径返回不同的内容--代码--返回具体的HTML文件
下一篇: Django路由系统
Mis相遇
博客等级 码龄8年 87粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值