Django的基本流程(二):模板显示、数据库的修改

一.模板显示

1.传参显示

在根路径下引入子路径

url(r'^app/',include('App.urls'))

在App下的urls.py文件中:

urlpatterns=[
    url(r'^testTem/',views.testTem)
]

在templates中创建testTem.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
     欢迎{{ name }}来到英雄联盟
</body>
</html>

在App下的views中:

def testTem(request):
    context = {
        'name': '源'
    }
    return render(request, 'testTem.html', context=context)

运行结果:
在这里插入图片描述

2.支持 for

在testTem中:

    <ul>
        {% for hero in hero_list %}
            <li>{{ hero }}</li>
        {% endfor %}
    </ul>

在views中:

def testTem(request):
    hero_list = ['亚索', '佐伊', '厄斐琉斯']
    context = {
        'name': '源',
        'hero_list': hero_list,
    }
    return render(request, 'testTem.html', context=context)

运行结果:
在这里插入图片描述

3.兼容性

模板的兼容性很强,其不传入不会报错,多传入也会自动优化掉。
例如我们在testTem中添加{{qwer}}

<body>
     欢迎{{ name }}来到英雄联盟
<hr>
    <ul>
        {% for hero in hero_list %}
            <li>{{ hero }}</li>
        {% endfor %}
    </ul>
     {{ qwer }}
<hr>
</body>

或者在视图函数中随意添加一个参数:‘age’:18

def testTem(request):
    hero_list = ['亚索', '佐伊', '厄斐琉斯']
    context = {
        'name': '源',
        'hero_list': hero_list,
        'age': 18
    }
    return render(request, 'testTem.html', context=context)

运行结果:
在这里插入图片描述
从运行结果上看来,是没有任何变化的,所以django模板的兼容性很强。

浏览器不认模板
  浏览器也叫做html解析器 只识别html文件
  在到达浏览器之前,已经进行了转换,将模板语言转换成了HTML

4.render底层实现

render的底层实现分为2步:(1)加载(2)渲染
应用场景:发送邮件,邮件的内容需要使用render方法来操纵
在App下urls中:

url(r'^testRender/',views.testRender)

创建视图函数:

def testRender(request):
    # (1)加载
    index = loader.get_template('testRender.html')
    context = {
        'name':'源'
    }
    # 2)渲染
    result = index.render(context=context)
    return HttpResponse(result)

创建testRender.html文件:

<body>
     {{ name }},今晚五黑走起。
</body>

运行结果:
在这里插入图片描述

二.数据库的修改

在settings中的DATABASES中进行修改

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        #'NAME':数据库名字
        'NAME': 'xxxx',
        #'USER':用户名字
        'USER':'xxxx',
        #'PASSWORD':密码
        'PASSWORD':'xxxx',
        #'HOST':主机
        'HOST':'xxx.xxx.xxx.xxx',
        #'PORT':端口号
        'PORT':'3306'
    }
}

修改后,测试会报错,显示没有MySQLdb驱动:
在这里插入图片描述

mysql驱动
  (1)mysqlclient:python2,3都能直接使用,但是有一个致命缺点就是对mysql安装有要求,必须指定位置存在配置文件
  (2)mysql-python: 对python2支持很好,但是不支持python3
  (3)pymysql:会伪装成mysqlclient和mysql-python,其对python2,python3都支持
           其需要在init中添加: import pymysql
                     pymysql.install_as_MySQLdb()

在虚拟环境中,安装pymysql:pip install pymysql
在init中添加:

import pymysql

pymysql.install_as_MySQLdb()

再次启动服务器即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值