python django基础(二)
django MTV模式之----template模版
django是动态的网页,后台的数据需要动态的插入到前端中,这时就依赖于django的template模版框架。django支持多种模版框架,下面介绍django自带的。
自带的模版语言可以在django模版中插入一些简单的代码和逻辑,例如变量,逻辑判断等。下面是一些模版的基础用法:(在html代码中插入该模版标签)
变量:
{{result}}
if判断
{%if%}
{%endif%}
循环for
{%for%}
{%endfor%}
过滤器(用于变量转化)
例子:使变量输出为时间格式
{{ item.publishtime|date:'Y-m-d H:i:s' }}
django有大量的过滤器来处理前端的展示,具体可参考:
http://djangobook.py3k.cn/appendixF/
https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/
后台view会将数据传递给前台模版,交给前台模版去渲染。
django MTV模式之----view
views.py是django中python后台处理的主要逻辑代码的地方,一般来说每访问一个网页,会对url进行匹配,这时会调用相应的views(实际就是一个python的自定义函数),之后view里面的函数对数据经过处理之后返回给前端。
一个view简单例子:
def blogmanager(request):
results = BlogList.objects.all().order_by('-time')
context = {'results': results}
return render(request,
'bloglist/blogmanager.html', context)
在view中用get方法获取前端提交的表单信息:
dayfrom = request.GET.get("dayfrom", "")
dayto = request.GET.get("dayto", "")
filterresult = request.GET.get("result", "")
在views中直接返回文本
return HttpResponse("disabled account")
在view中进行页面跳转
HttpResponseRedirect('/file/test/')
在view里返回数据给前台渲染,传递的context变量可以是字典的数据类型
return render(request, 'blog/publishlist.html', context)
django----url匹配
urls.py是配置访问相应url对应哪个views去处理的地方。django的url格式还是比较优雅和简单的,并且支持正则表达式。
url配置写法例子如下:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', 'blog.views.home', name='home'),
url(r'^record/(\d+)/', 'blog.views.record', name='record'),
url(r'^stats/(\S+)/', 'blog.views.stats', name='stats'),
)
url标签,定义name,在views里面加一个name="",name可以写在模版里,这样不用写死url地址。
url(r'^blogmanager/index$', 'sjzs.views.blogmanager', name='blogmanager'), <a class="brand" href="{%url 'blogmanager'%}">博客信息一览</a>
但是这个名称是全局唯一的,不能重复。
url.py嵌套,在django工程目录下有个url.py,另外在各自的应用目录下也可以创建一个url.py,然后在工程目录的url.py中加上一句include,这样某个应用url的匹配就可以具体写在应用目录下的url.py,如下:
url(r'^subblog/', include('subblog.urls'))
url 参数,django支持从url中获取参数
url(r'^record/(\d+)/', 'blog.views.record', name='record'),
django----admin后台管理
admin是django自带的后台管理,很方便使用,这个自动生成的后台页面里面有很多内容,包括用户和权限管理,也包括了应用的数据库内容,超级管理员可以编辑内容,增删改查,并且可以方便查找和过滤数据。
开启admin:在settings.py文件的install_apps里去掉admin的注释,如下:
INSTALLED_APPS = (
'django.contrib.admin',
)
更新数据库
python manage.py syncdb
在admin.py文件加入下面代码:
from django.contrib import admin
from polls.models import BlogList
class BlogList_Admin(admin.ModelAdmin):
list_display = ('id', 'blogtitle', 'time','number', 'content','blank',)
list_filter = ('id', 'blogtitle','time',)
search_fields = ('number','time',)
list_per_page=20
admin.site.register(BlogList, BlogList_Admin)
在urls.py开启admin
from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),
为后台创建超级管理员
manage.py createsuperuser --username=test --email=test@gmail.com
访问admin后台
python manage.py runserver
http://127.0.0.1:8000/admin/
xadmin
如果觉得django自带的admin界面比较简陋,还可以使用xadmin,功能比较多。
http://xadmin.readthedocs.io/en/docs-chinese/
django更多信息参考:
https://www.djangoproject.com/
python django基础(二)的更多相关文章
- python django基础二URL路由系统
URL配置 基本格式 from django.conf.urls import url #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数 ...
- day 66 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- day 53 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- Django基础二静态文件和ORM
Django基础二静态文件和ORM 目录 Django基础二静态文件和ORM 1. 静态文件 1.1 静态文件基本配置: 1.2 静态文件进阶配置 2. request参数 3. Django配置数据 ...
- python Django基础操作
Django常用命令 创建Django项目 Django-admin startprotect mysite 创建项目以后,以下生成的文件 最外层的file:mysite/ 根目录只是你的项目的容器 ...
- python 自动化之路 day 19 Django基础[二]
Django - 路由系统 url.py - 视图函数 views.py - 数据库操作 models.py - 模板引擎渲染 - HttpReponse(字符串) - render(request, ...
- Django基础(二):环境配置
前戏 WEB框架简介 具体介绍Django之前,必须先介绍WEB框架等概念. web框架: 别人已经设定好的一个web网站模板,你学习它的规则,然后“填空”或“修改”成你自己需要的样子. 一般web框 ...
- python django基础五 ORM多表操作
首先在创建表的时候看下分析一下 1.作者表和作者详细地址表 一对一关系 理论上谁都能当主表 把Author设置成主表 au=models.OneToOneField(to='AuthorDetail ...
- python django基础四 ORM简介
ORM,全称是object relation mapping.翻译过来,就是对象关系映射. 主要来学习MySQL操作,MySQL是一个软件.它的优点:1.免费 2.开源 pymysql,就是Mysql ...
随机推荐
- 利用Photoshop修改图片以达到投稿要求
摘自:http://www.dxy.cn/bbs/thread/8602152#8602152 利用Photoshop修改图片以达到投稿要求 软件版本为Photoshop CS V8.0.1(中文版) ...
- Android 腾讯入门教程( 智能手表UI设计 和 MVC模式 )
*****注意到mvc 在android 中是如何进行分层分域执行各自的功能.**** 官方推荐的按钮尺寸是48像素 前端之Android入门(1):环境配置 前端之Android入门(2):程序目录 ...
- Java 实现HTML富文本导出至word完美解决方案
一. 问题的提出 最近用java开发一个科技项目信息管理系统,里面有一个根据项目申请书的模板填写项目申报信息的功能,有一个科技项目申请书word导出功能. 已有的实现方式:采用标准的jsp模板输出实现 ...
- tornado 学习笔记17 HTTPServerRequest分析
代表Http请求. 所有的属性都是字符串型. 17.1 属性 (1) method:请求方法类型,比如"GET"."POST" (2) ur ...
- WPF上传文件到服务器
利用WebClient 上传文件到服务器 创建一个空网站,创建一个UploadFile.aspx项, 服务器报500错误:检查文件保存路径是否存在,检查文件大小限制 protected void Pa ...
- Logback_日志使用详解(转)
概述 Logback建立于三个主要类之上:日志记录器(Logger),输出端(Appender)和日志格式化器(Layout).这三种组件协同工作,使开发者可以按照消息类型和级别来记录消息,还可以在程 ...
- Linux Shell 重定向与管道【转帖】
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...
- mysql单列去重复group by分组取每组前几条记录加order by排序
mysql分组取每组前几条记录(排名) 附group by与order by的研究,需要的朋友可以参考下 --按某一字段分组取最大(小)值所在行的数据 复制代码代码如下: /* 数据如下: name ...
- 单页web应用是什么?它又会给传统网站带来哪些好处?
文章来源:<单页Web应用:JavaScript从前端到后端> 什么是单页应用? 单页应用是指在浏览器中运行的应用,它们在使用期间不会重新加载页面.像所有的应用一样,它旨在帮助用户完成任务 ...
- PHP去重算法的优化过程
最近公司在做一个项目,需要对爬取到的数据进行去重,方法就是根据数据的id,去除掉id重复的数据. 下面是这个方法的演化过程. // 去重 $arr_id = array(); $LeTVFeedLis ...