小标
2018-08-07
来源 :
阅读 833
评论 0
摘要:本文主要向大家介绍了Python语言之python+Django框架运用(二),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。
本文主要向大家介绍了Python语言之python+Django框架运用(二),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。
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 renderfrom django.template import loader
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 方式
def login_views(request):
dic = {
'user': 'laige',
'pwd': '123456'
}
te = loader.get_template('login.html')
html = te.render(dic)
return HttpResponse(html)
# render 方式
def login_views(request):
dic = {
'user': 'laige',
'pwd': '123456'
}
# 将模板渲染,并返回
return render(request, 'login.html', dic)
# 将本地变量传入 -- locals()
def login_views(request):
dic = {
'user': 'laige',
'pwd': '123456'
}
# 将模板渲染,并返回
return render(request, 'login.html', locals())
模板的标签
标签可以将服务器中的一些功能嵌入到模板中
基本语法:{% 标签内容 %}
常用的一些标签:
{% for 变量 in 迭代对象 %}
{% endfor %}
{% if 条件 %}
满足条件,执行!
{% elif 条件1 %}
满足条件1,执行!
{% else %}
不满足以上条件,执行!
{% endif %}
ps:这里只是举了两个常用的例子,
具体更多的标签内容可以查看文档:https://docs.djangoproject.com/en/2.0/ref/templates/builtins/
模板的过滤器
过滤器主要是在显示变量的数据之前,对数据进行筛选和改变
基本语法:{{ 变量|过滤器:参数 }}
几个简单的过滤器:
{{value|upper}}
{{value|lower}}
{{value|add:num}}
{{value|floatformat:n}}
{{value|truncatechars:n}}
ps:具体更多的过滤器内容可以查看文档:https://docs.djangoproject.com/en/2.0/ref/templates/builtins/
模板的静态文件处理
这里的静态文件指的是不需要嵌入到服务器端的内容的文件,
比如:图片、css、js、html都属于静态文件
在Django中静态文件的处理,需要在settings.py中设置静态文件的访问和存储路径:
# 1、指定静态文件访问路径:
# 当访问路径是://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视图
本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!
喜欢 | 1
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号