转自:http://blog.csdn.net/iloveyin/article/details/49560559
adsa
在用django开发博客时,首页只需要展示文章的一部分内容。可以用内置的filter来实现。在此mark一篇博客。
Django是个很伟大的东西,它的前端也非常容易上手,只需要掌握它的Template语言。这其中有个非常重要的东西叫filter,又叫过滤器。从本质上讲filter就是一个Python函数,取左端的为输入,分号后面为参数,进行处理后向右端输出,具体用法下面具体讲。当然除了我们自定义filter以外,Django内置的filter也已经足够强大,今天我们的主题就是其中的一类。
也许写过前端代码的你一定遇过以下问题中的一个,又还没解决,那么我觉得这篇文章值得一读
- 从数据库中取出来带有Html标签的字符串,而你只想显示纯文本。
- 从数据库中取出来带有Html标签的字符串,你希望显示被装饰后的富文本。
- 在首页截取文章的一部分显示时导致了首页整个乱了。
- 在Js里调用数据库中的东西时,有时候导致Js代码出现语法错误
- 有时候想把’ ‘显示成 有时候想把<显示成’<'
- 等等...
先说大牛们处理这类问题的方法,手写一系列符合自己要求的过滤器,便迎刃而解;但我们只想用Django自带的filter,下面我们一个一个介绍用到的filter,最后利用这些filter解决上述的疑难杂症。
safe
让Html标签以及一些特殊符号(如<)生效,下面以例子说明:
value = '<b>CPT</b>'
#那么输出的时候,CPT就是加粗的,如果不加safe那么显示出来的就是纯文本<b>CPT</b>
{{ value|safe }}
striptags
取消所有Html标签,下面以例子说明:
#value = '<p><b>CPT</b></p>'
#那么输出的时候,只有CPT且没有加粗没有段落;如果不加的话会显示全部文本<p><b>CPT</b></p>
{{ value|striptags }}
linebreaks
让\n这种控制符号变化Html可以识别的
#
value =
转自:
1. http://python.usyiyi.cn/django/howto/static-files/index.html
2. http://www.cnblogs.com/MnCu8261/p/6013557.html
最近准备用django写一个博客,界面直接用的leanote的界面,第一次接触到django中的静态文件管理,再次mark一篇博文,一篇文档
django中的静态文件管理
一个站点通常需要保存额外的文件,比如图片、css样式文件、js脚本文件,在django中,倾向于将这些文件称为静态文件。django提供了django.contrib.staticfiles 模块来帮助我们方便的管理静态文件。
配置静态文件的两种方式
- 配置单独app下的静态文件,比如某个app下的单独文件
- 配置整个project下的静态文件,适用于那些和单独app关联不大的文件,比如jquery、bootstrap等等
配置步骤
- 首先,我们需要确认在settings.py文件中的INSTALLED_APPS变量中存在 django.contrib.staticfiles
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
2.如果我们要配置单独app下的静态文件的话,执行此步骤。
- 在settings.py文件中定义 STATIC_URL 变量。
STATIC_URL = '/static/'
- 如果我们要配置单独app下的静态文件的话,这时,我们需要在app中建立一个名为static的文件夹。
3.如果我们要配置整个project下的静态文件的话,执行此步骤。
- 如果我们要配置整个project下的静态文件的话,我们需要在整个project 中建立一个
django的下载安装
根据官网下载安装django
pip install Django==1.11
创建项目
# 创建项目,目录名即为项目名称
djingo-admin <project_name>
在项目目录下,python manage.py runserver启动本地服务器
- manage.py: 用来命令行交互的,管理项目用的
- setting.py: 用来配置项目的一些设置,比如允许url、语言、静态文件等等
- wgsi: 主要是和服务器网关有关系,暂时不用管
应用
一个项目可以有多个应用,比如可以用python mangage.py startapp blog创建了一个blog应用,那么项目目录下就会生成一个blog的文件夹。
应用(比如blog)文件夹里会有一个view.py的文件,这个文件里定义视图的部分。如果要使用该应用(比如blog),那么一定要记住安装该应用,即在项目文件夹/setting.py中的install_app数组里添加该应用名称。
urls.py
项目文件夹下的urls.py里可以映射url到对应的函数执行部分。这里要提及include这个方法,这个方法可以用来使用嵌套路由。
render方法
view视图模块如果需要加载html文件怎么办?那么可以使用render方法渲染html文件,在应用目录下新建templates,然后加入模板文件就行,数据通过DTL模板引擎解析。注意:render方法寻找模板文件是通过install_app里的顺序来找的,所以如果不同应用间模板名称重复,那么建议在templates目录下在多加一层应用名称的目录,以区分开来不同应用的模板,同时render方法也应该多写一层应用名称的路径。
model
model需要先在models.py下创建数据表对应的类,属性即对应着字段,写好之后,执行
python manage.py makemigrations <app_name>
如果不填写应用名称,那么即视为对所有app操作。然后执行python manage.py migrate即可以将对应类的数据映射到sqlite3中去了。