python的django框架用来干嘛的_python+Django框架运用(二)

Django应用 与 模板

应用就是网站中的一个独立的程序模块,在Django 中,主目录一般不处理用户的具体请求,

主目录主要做的是项目的初始化和设置,以及请求的分发。

创建应用

1. 创建应用命令

./manage.py startapp 应用名称

2. 注册应用

创建完应用后,必须在settings.py中进行注册

在文件中找到INSTALLED_APPS(列表)中加上注册的应用名

3.应用的结构组成

migrations(目录)   ------> 存放数据库中间文件(日志文件)

__init__.py      ------> 应用的初始化文件

admin.py         ------> 应用的后台管理配置文件

apps.py        ------> 应用的属性配置文件

models.py       ------> 模型文件,与数据库相关

tests.py        ------> 测试模块

views.py       ------> 定义视图的文件

Django中模板--(Templates)

模板是要动态给用户呈现的网页内容,其实就是一个网页(一个前后端结合的网页)。

模板设置

模板的设置与settings.py中TEMPLATES变量(列表)相关,里面存放的字典。

BACKEND: 指定模板的搜索引擎(一般不用更改)

DIRS:指定模板的存放的目录,如果为空,Django会到应用中去搜索名为templates

的目录,作为模板的管理目录。

例如: DIRS = ['index.temp']   ----> 表示指定index应用的模板存放目录为temp

ps: 这里一般都是为空,然后在每个应用中创建一个templates目录。

APP_DIRS:(布尔值)为True则表示,先从DIRS中指定的目录中查找模板,

没有再搜templates目录

模板的加载方式

1、使用loader获取模板,通过HttpResponse进行响应

from django.shortcuts import render

from django.template importloader

def login_views(request):#加载模板,login.html为模板文件

te = loader.get_template('login.html')#将模板渲染成字符串

html =te.render()#HttpResponse响应给客户端

return HttpResponse(html)

2.使用render直接加载模板并返回(推荐)

from django.shortcuts import render

def login_views(request):

# 将模板渲染,并返回return render(request, 'login.html')

模板的变量

将后端的数据传递给模板,在模板中,会根据变量的值进行显示。

在Django中,允许传递给模板的数据类型,数值类型、字符串、列表、元组、字典、函数、对象

#loader 方式

deflogin_views(request):

dic={'user': 'laige','pwd': '123456'}

te= loader.get_template('login.html')

html=te.render(dic)returnHttpResponse(html)#render 方式

deflogin_views(request):

dic={'user': 'laige','pwd': '123456'}#将模板渲染,并返回

return render(request, 'login.html', dic)#将本地变量传入 -- locals()

deflogin_views(request):

dic={'user': 'laige','pwd': '123456'}#将模板渲染,并返回

return render(request, 'login.html', locals())

模板的标签

标签可以将服务器中的一些功能嵌入到模板中

基本语法:{%  标签内容  %}

常用的一些标签:

{% for 变量 in 迭代对象 %}

hello hello !

{% endfor %}{% if 条件 %}

满足条件,执行!

{% elif 条件1 %}

满足条件1,执行!

{% else %}

不满足以上条件,执行!

{% endif %}

ps:这里只是举了两个常用的例子,

模板的过滤器

过滤器主要是在显示变量的数据之前,对数据进行筛选和改变

基本语法:{{ 变量|过滤器:参数 }}

几个简单的过滤器:

{{value|upper}}{{value|lower}}{{value|add:num}}{{value|floatformat:n}}{{value|truncatechars:n}}

模板的静态文件处理

这里的静态文件指的是不需要嵌入到服务器端的内容的文件,

比如:图片、css、js、html都属于静态文件

在Django中静态文件的处理,需要在settings.py中设置静态文件的访问和存储路径:

#1、指定静态文件访问路径:#当访问路径是:http://localhost:8000/static/*** 一律到静态文件存储路径中搜索静态文件

STATIC_URL = '/static/'

#2、指定静态文件存储路径:#在项目中的static目录中以及所有应用中的static目录中存放的都是静态文件

STATICFILES_DIRS=(BASE_DIR, 'static')

Django中访问静态文件:

{% load static %}

模板的继承

当多个模板(网页)具备大部分相同内容时,可以使用继承的方式,将相同的内容

继承过来,再增加、修改属于自己的内容即可。

基础语法:

{% block 名称 %}

父模板正常显示,可在子模板修改的内容

{% endblock %}

{% extents 'login.html' %}{% block 名称 %}

子模板自己的内容

{% endblock %}

*这里补充一个内容:

urls.py路由文件中的url函数,url有个name参数,是指定路径的别名的。

url(r'^login/$', login_views, name='login')

只有定义之后,可以在模板中使用url的别名:

{% url '别名' %}

例如:

登录

这样点击登录这个链接,就会根据别名,跳转到login_views视图

未完待续......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值