? python ? ? django ?    发布于 2017-04-12   605人围观   0条评论

转自:http://blog.csdn.net/iloveyin/article/details/49560559
adsa
在用django开发博客时,首页只需要展示文章的一部分内容。可以用内置的filter来实现。在此mark一篇博客。


Django是个很伟大的东西,它的前端也非常容易上手,只需要掌握它的Template语言。这其中有个非常重要的东西叫filter,又叫过滤器。从本质上讲filter就是一个Python函数,取左端的为输入,分号后面为参数,进行处理后向右端输出,具体用法下面具体讲。当然除了我们自定义filter以外,Django内置的filter也已经足够强大,今天我们的主题就是其中的一类。

也许写过前端代码的你一定遇过以下问题中的一个,又还没解决,那么我觉得这篇文章值得一读

  1. 从数据库中取出来带有Html标签的字符串,而你只想显示纯文本。
  2. 从数据库中取出来带有Html标签的字符串,你希望显示被装饰后的富文本。
  3. 在首页截取文章的一部分显示时导致了首页整个乱了。
  4. 在Js里调用数据库中的东西时,有时候导致Js代码出现语法错误
  5. 有时候想把’ ‘显示成 有时候想把&lt显示成’<'
  6. 等等...
    先说大牛们处理这类问题的方法,手写一系列符合自己要求的过滤器,便迎刃而解;但我们只想用Django自带的filter,下面我们一个一个介绍用到的filter,最后利用这些filter解决上述的疑难杂症。

safe

让Html标签以及一些特殊符号(如<)生效,下面以例子说明:

  1. value = '<b>CPT</b>'
  2. #那么输出的时候,CPT就是加粗的,如果不加safe那么显示出来的就是纯文本<b>CPT</b>
  3. {{ value|safe }}

striptags

取消所有Html标签,下面以例子说明:

  1. #value = '<p><b>CPT</b></p>'
  2. #那么输出的时候,只有CPT且没有加粗没有段落;如果不加的话会显示全部文本<p><b>CPT</b></p>
  3. {{ value|striptags }}

linebreaks

让\n这种控制符号变化Html可以识别的

  1. #
  2. value =
查看更多
? python ? ? django ?    发布于 2017-04-11   394人围观   0条评论

转自:
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 模块来帮助我们方便的管理静态文件。

配置静态文件的两种方式

  1. 配置单独app下的静态文件,比如某个app下的单独文件
  2. 配置整个project下的静态文件,适用于那些和单独app关联不大的文件,比如jquery、bootstrap等等

配置步骤

  1. 首先,我们需要确认在settings.py文件中的INSTALLED_APPS变量中存在 django.contrib.staticfiles
  1. INSTALLED_APPS = (
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. )

2.如果我们要配置单独app下的静态文件的话,执行此步骤。

  • 在settings.py文件中定义 STATIC_URL 变量。
  1. STATIC_URL = '/static/'
  • 如果我们要配置单独app下的静态文件的话,这时,我们需要在app中建立一个名为static的文件夹。

3.如果我们要配置整个project下的静态文件的话,执行此步骤。

  • 如果我们要配置整个project下的静态文件的话,我们需要在整个project 中建立一个
查看更多
? python ? ? django ?    发布于 2017-04-10   259人围观   0条评论

django的下载安装

根据官网下载安装django

  1. pip install Django==1.11

创建项目

  1. # 创建项目,目录名即为项目名称
  2. 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下创建数据表对应的类,属性即对应着字段,写好之后,执行

  1. python manage.py makemigrations <app_name>

如果不填写应用名称,那么即视为对所有app操作。然后执行python manage.py migrate即可以将对应类的数据映射到sqlite3中去了。

查看更多
? linux ?    发布于 2017-04-07   1439人围观   0条评论

由于需要从一个终端复制文本到另一个终端,要用到系统剪贴板,找了些资料,mark一下
转自https://github.com/ruanyf/articles/blob/master/dev/vim/operation.md

复制,粘贴,剪切

选择文本

  • v+光标移动 (按字符选择)高亮选中所要的文本,然后进行各种操作(比如,d表示删除)。
  • V (按行选择)
  • v+选中的内容+c 更改选中的文字

复制:y(ank)

  • y 用v命令选中文本后,用y进行复制
  • yy 复制当前行,然后用p进行复制
  • 5yy 复制从当前行开始的5行
  • y_ 等同于yy
  • Y 等同于yy
  • yw 复制当前单词
  • y$ 从当前位置复制到行尾
  • y0 从当前位置复制到行首
  • y^ 从当前位置复制到第一个非空白字符
  • yG 从当前行复制到文件结束
  • y20G 从当前行复制到第20行
  • y?bar 复制至上一个出现bar的位置

粘贴

  • p 在光标位置之后粘贴
  • P 在光标位置之前粘贴

剪切

  • v + 选中的内容 + d 剪切

剪贴板

(1) 简单复制和粘贴

vim提供12个剪贴板,它们的名字分别为vim有11个粘贴板,分别是012...9a。如果开启了系统剪贴板,则会另外多出两个:+*。使用:reg命令,可以查看各个粘贴板里的内容。

系统剪切板中的内容可在其他程序中使用。上面的复制指令都可以配合剪切板进行操作。

  1. :reg

在vim中简单用y只是复制到(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容。

(2)复制和粘贴到指定剪贴板

要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了。

要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号。比如,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。

(3)系统剪贴板

Vim支持系统剪贴板,需要打开clipboard功能。使

查看更多
发布于 2017-04-06   1246人围观   0条评论

03.13 - 03.19

这段时间在整理毕设的东西之余,了解了关于整数规划的东西,包括分支定界、单纯形、拉格朗日松弛等等,并建立了一个整数规划模型,尝试去解,发现暂时还没有这样的水平来用这种方式来解决这个规划。

03.20 - 03.26

于是,开始思考其他方式。一开始,我们发现去除带宽限制之后,这是个经典的无容量限制的设施选址问题(UPFL),然后再通过多源多汇费用流的方法去解决,就好做了。随后,在淘了很多论文之后,找了一种贪婪算法去解决UPFL的问题,发现得到的结果和已知的最优解的服务器相近,这给了我们希望,后来通过贪婪算法 + 费用流 在小案例上得到了最优解。但是在大用例出来之后,发现这种办法会跑出来一些错点(非最优情况下的选址点),因为毕竟没有考虑到带宽受限的情况,所以单单用费用流去判断哪些消费节点不满足,然后再在这些基础上进行优化,完全不会达到最优。

03.27 - 03.31

写的第一版贪婪算法效率很高,但是由于打印的信息太多,导致我误以为效率很低(体现在高级跑了6分钟),采取另一种实现方式去实现贪婪算法,然后浪费了很多时间在上面,最后才发现写的第一版贪婪算法,在去除打印的信息之后,跑高级用例简直秒出。但是同时,由于没有考虑带宽限制,跑出的服务器点和已知最优解还是有些出入(虽然还上了一次64强榜单)。于是准备开始考虑采用其他启发式算法。

04.01 - 04.05*

在正式用例出来后,服务器成本提高,于是我们排名开始狂降。于是我先后尝试了遗传,由于是第一次实现,导致结果很不理想,却又无从下手,在4日晚上得知遗传退火可能会得到一些效果,所以又开始第一次实现遗传退火,在5日早上实现完成,中午测试了一下,初级用例有时可以跑到最优,中级可以提高一点点,但是高级就又完全跑不动了。

到5日晚上,我们几乎已经绝望,因为算来算去,我们最好的情况是得75分,而目测64强最后一名估计需要79分,最后两个小时的时候,终究还是技不如人,弃了。

心得

  • 代码

    1. 代码体现一个人的思维,代码混乱,即体现思维混乱
    2. 团队的代码功底不足,在解决问题的时候,往往代码写的非常难以维护,并且耦合情况十分严重。
    3. 以后在写代码的时候,要更加注重逻辑的设计,
查看更多