Django one combo

基本看完Python和html+javascript的语法了。不过还没有实际上手。最近在师兄推荐下看了一点,做出了一个Helloworld,现在在这里算是记下一点笔记吧。

我主要是在Windows的环境下进行学习的,首先要先安装好Python和Django,参考http://www.admin10000.com/document/94.html

开始一个django项目:

1、创建工作目录(即创建一个文件夹)

2、通过命令行进入该目录下,输入django-admin.py startproject mysite在你的当前目录下创建一个目录:mysite 

注:startproject 命令创建一个目录,包含4个文件:

__init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。 这是一个空文件,一般你不需要修改它。

manage.py :一种命令行工具,允许你以多种方式与该 Django 项目进行交互。 键入python manage.py help,看一下它能做什么。 你应当不需要编辑这个文件;在这个目录下生成它纯是为了方便。

settings.py :该 Django 项目的设置或配置。 查看并理解这个文件中可用的设置类型及其默认值。

urls.py:Django项目的URL设置。 可视其为你的django网站的目录。 目前,它是空的。

3、Runserver

 只有保持runserver的状态才可访问网页,如图;


4、views.py——视图

def function_name(request,other parameter):
    return HttpResponse(parameter)

注:第一个参数一定是request

5、URLconf

Eg.

from django.conf.urls.defaults import *
from mysite.views import hello
urlpatterns = patterns('',
    ('^hello/$', hello),
)

第一行导入django.conf.urls.defaults下的所有模块,它们是Django URLconf的基本构造。 这包含了一个patterns函数。

第二行我们从模块 (在 Python 的 import 语法中, mysite/views.py 转译为 mysite.views ) 中引入了hello 视图。

第三行调用 patterns() 函数并将返回结果保存到 urlpatterns 变量。patterns函数当前只有一个参数—一个空的字符串。 (这个字符串可以被用来表示一个视图函数的通用前缀。具体我们将在第八章里面介绍。)

接下来,我们为urlpatterns加上一行: (‘^hello/$’, hello), 这行被称作URLpattern,它是一个Python的元组。元组中第一个元素是模式匹配字符串(正则表达式);第二个元素是那个模式将使用的视图函数。

简单来说,我们只是告诉 Django,所有指向 URL /hello/ 的请求都应由 hello 这个视图函数来处理

Django在检查URL模式前,移除每一个申请的URL开头的斜杠(/)。 这意味着我们为/hello/写URL模式不用包含斜杠(/)。

模式包含了一个尖号(^)和一个美元符号($)。这些都是正则表达式符号,并且有特定的含义: 上箭头要求表达式对字符串的头部进行匹配,美元符号则要求表达式对字符串的尾部进行匹配。

例如:如果我们用尾部不是$的模式’^hello/’,那么任何以/hello/开头的URL将会匹配,例如:/hello/foo 和/hello/bar,而不仅仅是/hello/。类似地,如果我们忽略了尖号(^),即’hello/$’,那么任何以hello/结尾的URL将会匹配,例如:/foo/bar/hello/。如果我们简单使用hello/,即没有^开头和$结尾,那么任何包含hello/的URL将会匹配,如:/foo/hello/bar。因此,我们使用这两个符号以确保只有/hello/匹配,不多也不少。大多数的URL模式会以^开始、以$结束,但是拥有复杂匹配的灵活性会更好。

正则表达式字符串若有开头字母“r”。 它告诉Python这是个原始字符串,不需要处理里面的反斜杠(转义字符)。 在普通Python字符串中,反斜杠用于特殊字符的转义。比如\n转义成一个换行符。 当你用r把它标示为一个原始字符串后,Python不再视其中的反斜杠为转义字符。由于反斜杠在Python代码和正则表达式中有冲突,因此建议在Python定义正则表达式时都使用原始字符串。 

6、松耦合

在Django的应用程序中,URL的定义和视图函数之间是松 耦合的,换句话说,决定URL返回哪个视图函数和实现这个视图函数是在两个不同的地方。 这使得 开发人员可以修改一块而不会影响另一块。

7、模版

目的:将页面的设计和Python的代码分离开,便于维护。

模版的基本知识:

(1)变量

用两个大括号括起来的文字(例如 {{ person_name }} )称为 变量(variable) 

(2)标签

被大括号和百分号包围的文本(例如 {% if ordered_warranty %} )是 模板标签(template tag) 

(3)过滤器

是一种最便捷的转换变量输出格式的方式

如这个例子中的{{ship_date|date:F j, Y” }},我们将变量ship_date传递给date过滤器,同时指定参数”F j,Y”。date过滤器根据参数进行格式输出。 过滤器是用管道符(|)来调用的

使用Django模板系统的基本规则: 写模板,创建 Template 对象,创建 Context , 调用 render() 方法。

8、注释

注释

就像HTML或者Python,Django模板语言同样提供代码注释。 注释使用 {# #} :

{# This is a comment #}

如果要实现多行注释,可以使用`` {% comment %}`` 模板标签,就像这样:

{% comment %}
This is a
multi-line comment.
{% endcomment %}

9、过滤器

就象本章前面提到的一样,模板过滤器是在变量被显示前修改它的值的一个简单方法。 过滤器使用管道字符,如下所示:

{{ name|lower }}

显示的内容是变量 {{ name }} 被过滤器 lower 处理后的结果,它功能是转换文本为小写。

过滤管道可以被套接,既是说,一个过滤器管道的输出又可以作为下一个管道的输入,如此下去。 下面的例子实现查找列表的第一个元素并将其转化为大写。

{{ my_list|first|upper }}

有些过滤器有参数。 过滤器的参数跟随冒号之后并且总是以双引号包含。 例如:

{{ bio|truncatewords:"30" }}

这个将显示变量 bio 的前30个词。

待续……


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值