【Django 008】templates模板文件详解

Templates,也就是模板文件,算是MTV模型中最好理解的部分了。根据传递进来的数据,渲染成想要的html。下面我们就一起来看看如何操作。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

环境搭建

还是和之前一样的步骤,这里就不详细演示每一步的操作了:

  1. virtualenv创建虚拟环境,这里可以直接用之前的虚拟环境。记得activate环境
  2. django-admin startproject DjangoTemplate新建项目
  3. pycharm打开项目,注意是在manage.py的上一级打开

这里额外说明下,最好是每次单独打开一个项目,不然可能会出现一些奇怪的问题

  1. 配置解释器为虚拟环境内的python,前一个项目的第三方包都会自动识别
  2. python manage.py startapp App新建一个应用,并在settings中注册
  3. mysql创好数据库DjangoTemplate,每次都用新的库,不然会有问题
  4. 修改配置文件settings.py,包括数据库连接信息,全局templates文件路径等等
  5. 全局__init__.py中对pymysql进行伪装pymysql.install_as_MySQLdb()
  6. 默认数据迁移python manage.py migrate
  7. 创建App/urls.py文件,并在根目录下的urls.py中用include('App.urls')进行注册
  8. 创建一个简单的view函数然后python manage.py runserver验证基本功能

上述步骤完成后一个基本的项目框架就搭好了。

基本语法

可以参考我之前写的另一篇博客《Saltstack入门到精通教程(五):Jinja详解》。这里的jinja语法就是python中的常用模板语法。Django中虽说不是jinja,但是基本的使用上是差不多的。

同时,这里还有Django模板使用官方文档供查询。

在if还有for这些基本语法之外,有些比较特殊的拿出来下面专门说一说。

模板中的点语法

首先创建一个model

class student(models.Model):
    name = models.CharField(max_length=16)

生成迁移,同步到数据库

(django) [fuhx@testmachine DjangoTemplate]$ python manage.py makemigrations
Migrations for 'App':
  App/migrations/0001_initial.py
    - Create model student
(django) [fuhx@testmachine DjangoTemplate]$ python manage.py migrate
Operations to perform:
  Apply all migrations: App, admin, auth, contenttypes, sessions
Running migrations:
  Applying App.0001_initial... OK

利用Django自带的类似于ipython的交互shell给数据库添加点数据

(django) [fuhx@testmachine DjangoTemplate]$ python manage.py shell
>>> from App.models import student
>>> for i in range(10):
...     stu = student(name='james{}'.format(str(i)))
...     stu.save()
...
>>>

有了数据我们就可以开始正式操作了。

调用实例的属性

创建一个获取全部数据的路由和view函数

path('getstudents/',views.getstudents)
def getstudents(request):
    students = student.objects.all()
    context = {
        'students': students,
    }
    return render(request,'getstudents.html',context=context)

其中的h5文件如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Student List</title>
</head>
<body>
<ul>
    {% for student in students %}
        <li>{
  { student.name }}</li>
    {% endfor %}


</ul>
</body>
</html>

view函数中给模板文件传递进去的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值