Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >django模板之的html模板中调用对

django模板之的html模板中调用对

作者头像
py3study
发布于 2020-01-08 06:16:39
发布于 2020-01-08 06:16:39
4.6K00
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

环境:依赖最初test2数据库

           python3版本

           多python版本环境

进入,python3虚拟环境,新建项目test4:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# cd py3/django-test1/
]# django-admin startproject test4

创建应用bookshop:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# cd test4
]# python manage.py startapp bookshop

修改settings.py主配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# vim test4/settings.py
...
#数据库为mysql,使用原来的test2数据库名称:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test2',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '192.168.255.70',
        'PORT': '3306',
    }
}
#添加应用:
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'bookshop',
)
#添加模板查找路径:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        ...
]
...

在项目名称目录下,添加模板目录并在其下添加应用的模板目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# mkdir -p templates/bookshop

在主url路由配置文件中,添加查找应用url的路由:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# vim test4/settings.py 
...
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^',include('bookshop.urls',namespace='bookshop')),
]

在应用目录下创建urls.py文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# vim bookshop/urls.py
from django.conf.urls import url
from .  import views

urlpatterns = [
    url(r'\^$',views.index,name='index'),
]

以上基本配置完成,下面演示在模板中调用对象的方法:

定义模型类:

为了不用迁移,定义模型类要和test2数据库结构一样;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# vim bookshop/models.py
from django.db import models

class BookInfo(models.Model):
    btitle = models.CharField(max_length=20)
    bpub_date = models.DateTimeField(db_column='pub_date') #定义字段名称为pub_date,默认字段名称就是类属性,即默认字段名称为bpub_date
    bread = models.IntegerField()
    bcommet = models.IntegerField()
    isDelete = models.BooleanField()

    #定义表名
    class Meta():
        db_table = 'bookinfo'
    #如果不写上面2行,表名默认为项目名称.类名称,即bookshop.bookinfo

class HeroInfo(models.Model):
    hname = models.CharField(max_length=10)
    hgender = models.BooleanField()
    hcontent = models.CharField(max_length=1000)
    isDelete = models.BooleanField()
    book = models.ForeignKey('BookInfo') #定义外键,此处引号是否可省略,BookInfo先定义就可省略引号,如果后定义则需要使用引号,使用引号绝对没错;在表中字段自动变为book_id
    
    def showname(self):
        return self.hname

定义视图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# vim bookshop/views.py
from django.shortcuts import render
from .models import *
#from models import * #在python2写法


def index(request): #必须接收一个参数
    hero = HeroInfo.objects.get(pk=1) #查询主键(pk)=1的条目
    context = {'hero':hero} #必须为字典格式
    return render(request,'bookshop/index.html',context)

定义index.html模板文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# vim templates/bookshop/index.html
<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
</head>
<body>
{{ hero.hname }}<br><!--调用对象的属性-->
{{hero.showname}}<!--调用对象的方法,但不能给方法传递参数-->

<!--注释
#点号解析顺序:
#1.先把hero作为字典,hname为键查找
#2.再把hero作为对象,hname为属性或方法查找
#3.最后把hero作为列表,hname为索引查找
-->

</body>
</html>

启动web服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# python manage.py runserver 192.168.255.70:8000
报错:Error loading MySQLdb module: No module named 'MySQLdb'

解决:由于在python3版本上使用pymysql库,没有MySQLdb库,则需要配置;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
]# vim test4/__init__.py
import pymysql
pymysql.install_as_MySQLdb()

再次启动web服务成功;浏览器访问:http://192.168.255.70:8000/

完成验收在html模板文件中调用对象的属性和对象的方法。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
(最新 9000 字 )Spring Boot 配置特性解析
目前Spring Boot版本: 2.3.4.RELEASE,这更新的速度也是嗖嗖的了,随着新版本的发布,也一步步针对公司基础组件进行了升级改造,其中很重要的一块就是配置文件的更新(虽然目前已经全部使用了Apollo)。针对Spring Boot 新版本的配置文件也做了一次梳理,确实发现了以前没有注意到的点。
鲁大猿
2020/09/25
6260
(最新 9000 字 )Spring Boot 配置特性解析
「快学springboot」SpringBoot多环境配置文件
我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml)。但是,如果想要把不同的环境(如开发环境,测试环境,生产环境)的配置文件分离,这要怎么做呢?其实,SpringBoot是支持指定不同的配置文件的。
Happyjava
2024/02/01
2860
「快学springboot」SpringBoot多环境配置文件
springCloud学习1(集中式配置管理)
  在开发普通的 web 应用中,我们通常是将配置项写在单独的配置文件中,比如application.yml,application.properties,但是在微服务架构中,可能会出现数百个微服务,如果每个微服务将配置文件写在自身的配置文件中,会导致配置文件的管理非常复杂。因此集中式的配置管理是非常有必要的,每个服务启动时从集中式的存储库中读取需要的配置信息。其模型如下:
用户2038589
2018/12/28
7650
spring boot 之 profile 配置
SPRING Environment 为此提供了一个 API,但是您通常会设置一个 System 属性(spring.profiles.active) 或者一个 OS 环境变量(SPRING_PROFILES_ACTIVE)。此外,您可以使用 -d 参数启动应用程序(记住将其放在 main 类或 jar 归档之前) ,如下所示:
acc8226
2022/09/21
7650
Spring Cloud Config 配置中心搭建
Spring Cloud Config是一个用于集中管理应用程序的配置文件的工具,它提供了一个中心化的配置服务器,支持多种后端存储器。它可以帮助开发人员轻松管理应用程序的配置,同时也支持应用程序的动态更新,无需重新部署应用程序。
堕落飞鸟
2023/04/06
4280
SpringCloud入门之Spring Boot多环境配置切换指南
在 spring boot 中,有两种配置文件,一种是application.properties,另一种是application.yml,两种都可以配置spring boot 项目中的一些变量的定义,参数的设置等。
jack.yang
2025/04/05
860
Spring Boot核心概念:应用配置
Spring Boot提供了强大的配置系统,允许开发者通过配置文件轻松管理应用的配置。支持的主要配置文件格式有两种:application.properties和application.yml。
世间万物皆对象
2024/11/21
1010
Spring Boot从零入门7_最新配置文件配置及优先级详细介绍
本文属于原创,转载注明出处,欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https://xiaobaiai.net 或者我的CSDN http://blog.csdn.net/freeape
别打名名
2019/12/23
8960
Spring Boot基本配置
 转载自  https://www.cnblogs.com/lilinzhiyu/p/8116877.html
allsmallpig
2021/02/25
4380
SpringBoot 基础配置 & Hello Word
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。
Bobby
2019/04/09
5000
SpringBoot 基础配置 & Hello Word
重学SpringBoot3-配置优先级详解
Spring Boot 的核心设计之一是“约定优于配置”(Convention Over Configuration),这使得它能够根据默认值和用户提供的配置快速启动应用程序。然而,在实际开发中,应用的配置可能来自多个来源。理解这些配置来源的优先级非常重要,以便在配置冲突时确保程序按预期运行。
CoderJia
2024/11/17
4730
重学SpringBoot3-配置优先级详解
「快学springboot」SpringBoot多环境配置文件
我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml)。但是,如果想要把不同的环境(如开发环境,测试环境,生产环境)的配置文件分离,这要怎么做呢?其实,SpringBoot是支持指定不同的配置文件的。
Happyjava
2019/07/16
8980
「快学springboot」SpringBoot多环境配置文件
程序员的30大SpringBoot面试问题及答案
通过Spring Boot,可以轻松地创建独立的,基于生产级别的Spring的应用程序,您可以“运行”它们。大多数Spring Boot应用程序需要最少的Spring配置。
鱼找水需要时间
2023/12/27
3780
Spring Boot-2.配置基础
Spring Boot通常以一个名为*Application的类作为入口类,入口类里的main方法(即标准的Java应用的入口方法)作为Spring Boot应用项目的入口方法。 @SpringBootApplication是Spring Boot的核心注解,这是一个组合注解,源码为:
悠扬前奏
2019/05/28
5580
Spring Boot中的资源文件属性配置
在Spring Boot应用程序中,配置文件是管理应用程序行为的重要组成部分。资源文件属性配置允许开发者在不重新编译代码的情况下,对应用程序进行灵活地配置和调整。本篇博客将介绍Spring Boot中资源文件属性配置的基本概念,并通过实际示例展示如何利用这一功能。
小马哥学JAVA
2024/04/28
1790
Spring Boot的配置文件
在 Spring Boot 中,配置文件用于配置应用程序的各种属性和参数。Spring Boot 支持多种类型的配置文件,包括 YAML、Properties、XML 等。在本文中,我们将介绍 Spring Boot 的配置文件类型、配置文件的读取顺序和优先级、配置文件的语法和示例等方面。
堕落飞鸟
2023/04/05
7600
SpringBoot实战第六章-Spring Boot核心
本章主要讲Spring Boot的一些核心内容与配置,非常简单粗暴,具体参数配置还在实际项目里实践才能真正使用好这些配置。
全栈程序员站长
2021/05/19
2260
Spring Boot2.x-03Spring Boot基础
Spring Boot-Spring Tool Suit + Gradle 构建第一个Spring Boot 项目01
小小工匠
2021/08/17
3180
Spring Boot一些基础配置
我们可以把这个图案修改为自己想要的。在src/main/resources目录下新建banner.txt文件,然后将自己的图案黏贴进去即可。ASCII图案可通过网站http://www.network-science.de/ascii/一键生成,比如输入mrbird生成图案后复制到banner.txt,启动项目,eclipse控制台输出如下:
技术从心
2019/10/13
4030
《Spring Boot 实战:从0到1》第3章 零XML配置的Spring Boot Application第3章 零XML配置的Spring Boot
Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件、YAML 文件、环境变量和命令行参数来定义优先级不同的配置值。
一个会写诗的程序员
2018/08/17
1.2K0
相关推荐
(最新 9000 字 )Spring Boot 配置特性解析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验