Django配置和初探

Django是python下的一款网络服务器框架.

推荐一个学习文档http://www.kancloud.cn/thinkphp/django-book
1.安装 windos下:    

推荐使用7-Zip(http://www.djangoproject.com/r/7zip/)来解压缩.tar.gz文件。 解压缩完成后,以管理员权限启动一个DOS Shell(命令提示符),然后在名字以Django-开始的目录里执行如下命令:

python setup.py install

     linux下:    sudo pip install django(如果没有安装pip的话,先安装pip:sudo apt-get install python-pip)或者

           首先,下载名字类似于Django-1.0.2-final.tar.gz压缩文件。(下载到哪里无所谓,安装程序会把Django文件放到正确的地方。)解压缩之后运行setup.py install,像操作大多数Python库一样。

需要安装ipython的话,执行:sudo apt-get install ipython

以下是如何在Unix系统上安装的方法:

  1. tar xzvf Django-*.tar.gz 。
  2. cd Django-* 。
  3. sudo python setup.py install 。

如果安装成功,你应该可以导入django模块了:

>>>import django
>>>django.VERSION

2.启动
1.创建项目

首先配置django的环境变量,找到django-admin.py所在的全路径,一般django-admin.py是在django\bin下,然后添加到path中

新建一个工作目录,在该路径,重启命令行cmd,执行

django-admin.py startproject mysite(不需要python命令,包括import django)

在当前目录下会形成mysite文件夹.其文件树结构如下;(cmd下tree/f)

mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py (部署服务器时所用)

  • init.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。 这是一个空文件,一般你不需要修改它。
  • manage.py :一种命令行工具,允许你以多种方式与该 Django 项目进行交互。 键入python manage.py help,看一下它能做什么。 你应当不需要编辑这个文件;在这个目录下生成它纯是为了方便。
  • settings.py :该 Django 项目的设置或配置。 查看并理解这个文件中可用的设置类型及其默认值。
  • urls.py:Django项目的URL设置。 可视其为你的django网站的目录。 目前,它是空的。

 

2.进入mysite 启动服务器

python manage.py runserver 8000
打开浏览器访问http://127.0.0.1:8000 可以看到服务器正在运行

虽然有一个能跑的服务器,但什么内容都没有

默认情况下, runserver 命令在 8000 端口启动开发服务器,且仅监听本地连接。 要想要更改服务器端口的话,可将端口作为命令行参数传入:

python manage.py runserver 8080

通过指定一个 IP 地址,你可以告诉服务器–允许非本地连接访问。 如果你想和其他开发人员共享同一开发站点的话,该功能特别有用。 0.0.0.0 这个 IP 地址,告诉服务器去侦听任意的网络接口。

python manage.py runserver 0.0.0.0:8000

linux下可以执行python manage.py shell进入ipython环境.退出执行:exit

3.第一个网页

网络服务器是“请求-回应”的工作模式。客户向URL发送请求,服务器根据请求,开动后厨,并最终为客人上菜。
django采用mvc结构.即点单,厨房,储藏室分离.
1.新建一个应用(app)名称叫learn
在最外层mysite 键入python manage.py startapp learn
2.把新定义的app加到settings.py中的INSTALL_APPS中:修改setting.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'learn',
]
3.定义视图函数(views.py)
在使用django-admin.py startproject制作的mysite文件夹中,创建一个叫做views.py的空文件。Django对于view.py的文件命名没有特别的要求,它不在乎这个文件叫什么。但是根据约定,把它命名成view.py是个好主意,这样有利于其他开发者读懂你的代码

 这些是完整的函数和导入声明,你需要输入到views.py文件:

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world")

 

每个视图函数至少要有一个参数,通常被叫作request。 这是一个触发这个视图、包含当前Web请求信息的对象,是类django.http.HttpRequest的一个实例.

这里主要讲的是: 一个视图就是Python的一个函数。这个函数第一个参数的类型是HttpRequest;它返回一个HttpResponse实例。

4.分配url请求:修改url.py
为了绑定视图函数和URL,我们使用URLconf.执行 django-admin.py startproject 时,该脚本会自动为你建了一份 URLconf(即 urls.py 文件)

---首先,我们从模块 (在 Python 的 import 语法中, mysite/views.py 转译为 mysite.views ) 中引入了hello 视图。 (这假设mysite/views.py在你的Python搜索路径上。关于搜索路径的解释,请参照下文。)

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

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

from django.conf.urls.defaults import *
from mysite.views import hello

urlpatterns = patterns('',
    ('^hello/$', hello),
)

 

Python 搜索路径

Python 搜索路径 就是使用 import 语句时,Python 所查找的系统目录清单

假定你将 Python 路径设置为

['','/usr/lib/python2.4/site-packages','/home/username/djcode/']
如果执行代码from foo import bar ,Python 将会首先在当前目录查找 foo.py 模块( Python 路径第一项的空字符串表示当前目录)。 如果文件不存在,Python将查找 /usr/lib/python2.4/site-packages/foo.py 文件。

讨论一下URLpattern的语法是值得的,因为它不是显而易见的。 虽然我们想匹配地址/hello/,但是模式看上去与这有点差别。 这就是为什么:

Django在检查URL模式前,移除每一个申请的URL开头的斜杠(/)。 这意味着我们为/hello/写URL模式不用包含斜杠(/)。(刚开始,这样可能看起来不直观,但这样的要求简化了许多工作,模式包含了一个尖号(^)和一个美元符号($)。这些都是正则表达式符号,并且有特定的含义: 上箭头要求表达式对字符串的头部进行匹配,美元符号则要求表达式对字符串的尾部进行匹配.

你大多数的URL模式会以^开始、以$结束,但是拥有复杂匹配的灵活性会更好。你可能会问:如果有人申请访问/hello(尾部没有斜杠/)会怎样。 因为我们的URL模式要求尾部有一个斜杠(/),那个申请URL将不匹配。 然而,默认地,任何不匹配或尾部没有斜杠(/)的申请URL,将被重定向至尾部包含斜杠的相同字眼的URL。 (这是受配置文件setting中APPEND_SLASH项控制的)如果你是喜欢所有URL都以’/’结尾的人(Django开发者的偏爱),那么你只需要在每个URL后添加斜杠,并且设置”APPEND_SLASH”为”True”. 如果不喜欢URL以斜杠结尾或者根据每个URL来决定,那么需要设置”APPEND_SLASH”为”False”,并且根据你自己的意愿来添加结尾斜杠/在URL模式后.

3.在终端上运行python manage.py runserver

 

 

 

 

 


_1.localhost与127.0.0.1的区别
localhost也叫local,正确解释是本地服务器
127.0.0.1正确解释是本机地址
localhost不经网卡传输,不受相关防火墙和网卡的限制,127.0.0.1通过网卡传输,受网络防火墙和网卡相关的限制
本机ip和127.0.0.1的区别是127.0.0.1只能通过本机访问,本机ip既可通过本机访问,也能通过外网访问
_2.mvc
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
Model(模型)表示应用程序核心(比如数据库记录列表)。
View(视图)显示数据(数据库记录)。
Controller(控制器)处理输入(写入数据库记录)。
_3.
/ 就是访问的时候是 /u/ 这样的网址,最后那个 /。
$是正则表达式的 锚定符,代表结尾,
^代表开头,^u/$的意思就是 严格匹配 u/ 的意思,前面的那个 / 是自动加的
_4.
其实里面的 -*- 只是为了好看,最简单,直接写个#coding:utf-8 或 #coding=utf-8
当然 utf-8 也可以写成 utf8 (不要短线),甚至写成 u8

posted @ 2016-12-06 16:51  Norwegian-Wood  阅读(241)  评论(0编辑  收藏  举报