一、创建Django项目
http://blog.csdn.net/pipisorry/article/details/38964249
创建项目
首先环境比那辆配置,将django-admin.py路径添加至Path
使用 django-admin.py 来创建 HelloWorld 项目:
django-admin startproject HelloWorld
创建完成后我们可以查看下项目的目录结构:
cd HelloWorld/
tree /f
目录说明:
HelloWorld:项目的容器。
manage.py:一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
HelloWorld/init.py:一个空文件,告诉 Python 该目录是一个 Python 包。
HelloWorld/settings.py:该 Django 项目的设置/配置。
HelloWorld/urls.py:该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。决定127.0.0.1:8000后面可以接哪些内容?
HelloWorld/wsgi.py:一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
启动服务器
接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:
python manage.py runserver 0.0.0.0:8000
在其他电脑浏览器输入服务器/电脑的ip(Windows的用户在cmd中输入ipconfig; Unix用户输入ifconfig)及端口号,如果正常启动,输出:
Note:
- 通常情况下,你每次修改过一个文件后开发服务器都会自动载入,但是创建一个新文件却不会触发自动载入的逻辑。
- 这时启动的服务只能在本机访问,这是因为服务只向本机(127.0.0.1:8000)提供,所以局域网的其他机器不能访问。在另一台机器上访问django开放的界面会出现Page not found (404)错误。
- 默认情况下,:djadmin:runserver 命令启动的开发服务器只监听本地 IP 的 8000 端口。如果你想改变服务器的端口,把它作为一个命令行参数传递即可。例如以下命令启动的服务器将监听 8080 端口:python manage.py runserver 8080
二、视图和 URL 配置
创建视图函数
在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码:
HelloWorld/HelloWorld/view.py 文件代码:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world ! ")
Note:
- 这里的view还是没有和数据分开,比较low.
- 定义一个叫做hello 的视图函数。每个视图函数至少要有一个参数,通常被叫作request。 这是一个触发这个视图、包含当前Web请求信息的对象,是类django.http.HttpRequest的一个实例。在这个示例中,我们虽然不用request做任何事情,然而它仍必须是这个视图的第一个参数。注意视图函数的名称并不重要。
这个函数只有简单的一行代码: 它仅仅返回一个HttpResponse对象,这个对象包含了文本“Hello world”。- 一个视图就是Python的一个函数。这个函数第一个参数的类型是HttpRequest;它返回一个HttpResponse实例。为了使一个Python的函数成为一个Django可识别的视图,它必须满足这两个条件。(也有例外)
绑定 URL 与视图函数
接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:
HelloWorld/HelloWorld/urls.py 文件代码:
from django.conf.urls import url
from . import view
urlpatterns = [
url(r'^$', view.hello),
]
Note:
- url函数结构: url(regex,view,kwargs=None,name=None,prefix='')
- patterns函数的第一个参数即是view的前缀[Django的url用法]
- 告诉 Django,所有指向 URL /hello/ 的请求都应由hello 这个视图函数来处理
- Django在检查URL模式前,移除每一个申请的URL开头的斜杠(/)。 这意味着我们为/hello/写URL模式不用包含斜杠(/)。如果有人申请访问/hello(尾部没有斜杠/)会怎样。 因为我们的URL模式要求尾部有一个斜杠(/),那个申请URL将不匹配。 然而,默认地,任何不匹配或尾部没有斜杠(/)的申请URL,将被重定向至尾部包含斜杠的相同字眼的URL。 (这是受配置文件setting中APPEND_SLASH项控制的)
5. 把hello视图函数作为一个对象传递,而不是调用它。
整个目录结构如下: