Django是Python下的一款网络服务器框架。Python下有许多款不同的框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。虽然Django之于Python,达不到Rail之于Ruby的一统江湖的地位,但Django无疑也是Python在网络应用方面的一位主将。
向昆汀的致敬,“被解放的姜戈”
Django意外的和昆汀的电影重名。这大大提高了Django的知名度。另外利用电影,宣传了这个奇怪的词的发音。
下面是姜戈的初体验。
启动计算机中的Python,尝试载入Django模块。如果可以成功载入,那么说明Django已经安装好:
12 | import djangoprint(django.VERSION) |
如果Django还没有安装,可以在命令行,尝试使用pip安装:
1 | sudo pip install django |
或者使用easy_install:
1 | sudo easy_install django |
黑夜中,姜戈和镣铐说再见。
使用下面的命令创建项目:
1 | django–admin.py startproject mysite |
在当前目录下,将生成mysite文件夹。其文件树结构如下:
123456789 | mysite├── manage.py└── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 1 directory, 5 files |
进入mysite,启动服务器:
1 | python manage.py runserver 8000 |
上面的8000为端口号。如果不说明,那么端口号默认为8000。
打开浏览器,访问http://127.0.0.1:8000,可以看到服务器已经在运行:
虽然有一个能跑的服务器,但什么内容都没有。
“赏金?猎人?” 姜戈满脸困惑。
在http协议中可以看到,网络服务器是“请求-回应”的工作模式。客户向URL发送请求,服务器根据请求,开动后厨,并最终为客人上菜。Django采用的MVC结构,即点单、厨房、储藏室分离。
我们需要一个指挥员,将URL对应分配给某个对象处理,这需要在mysite/mysite下的urls.py设定。Python会根据该程序,将URL请求分给某个厨师。
123456789 | mysite├── manage.py└── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 1 directory, 5 files |
将urls.py修改为:
12345678910111213 | from django.conf.urls import patterns, include, url from django.contrib import adminadmin.autodiscover() urlpatterns = patterns(\’\’, # Examples: # url(r\’^$\’, \’mysite.views.home\’, name=\’home\’), # url(r\’^blog/\’, include(\’blog.urls\’)), url(r\’^admin/\’, include(admin.site.urls)), url(r\’^$\’, \’mysite.views.first_page\’),) |
我们添加了最后一行。它将根目录的URL分配给一个对象进行处理,这个对象是mysite.views.first_page。
用以处理HTTP请求的这一对象还不存在,我们在mysite/mysite下创建views.py,并在其中定义first_page函数:
向昆汀的致敬,“被解放的姜戈”
Django意外的和昆汀的电影重名。这大大提高了Django的知名度。另外利用电影,宣传了这个奇怪的词的发音。
下面是姜戈的初体验。
启动计算机中的Python,尝试载入Django模块。如果可以成功载入,那么说明Django已经安装好:
12 | import djangoprint(django.VERSION) |
如果Django还没有安装,可以在命令行,尝试使用pip安装:
1 | sudo pip install django |
或者使用easy_install:
1 | sudo easy_install django |
黑夜中,姜戈和镣铐说再见。
使用下面的命令创建项目:
1 | django–admin.py startproject mysite |
在当前目录下,将生成mysite文件夹。其文件树结构如下:
123456789 | mysite├── manage.py└── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 1 directory, 5 files |
进入mysite,启动服务器:
1 | python manage.py runserver 8000 |
上面的8000为端口号。如果不说明,那么端口号默认为8000。
打开浏览器,访问http://127.0.0.1:8000,可以看到服务器已经在运行:
虽然有一个能跑的服务器,但什么内容都没有。
“赏金?猎人?” 姜戈满脸困惑。
在http协议中可以看到,网络服务器是“请求-回应”的工作模式。客户向URL发送请求,服务器根据请求,开动后厨,并最终为客人上菜。Django采用的MVC结构,即点单、厨房、储藏室分离。
我们需要一个指挥员,将URL对应分配给某个对象处理,这需要在mysite/mysite下的urls.py设定。Python会根据该程序,将URL请求分给某个厨师。
123456789 | mysite├── manage.py└── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 1 directory, 5 files |
将urls.py修改为:
12345678910111213 | from django.conf.urls import patterns, include, url from django.contrib import adminadmin.autodiscover() urlpatterns = patterns(\’\’, # Examples: # url(r\’^$\’, \’mysite.views.home\’, name=\’home\’), # url(r\’^blog/\’, include(\’blog.urls\’)), url(r\’^admin/\’, include(admin.site.urls)), url(r\’^$\’, \’mysite.views.first_page\’),) |
我们添加了最后一行。它将根目录的URL分配给一个对象进行处理,这个对象是mysite.views.first_page。
用以处理HTTP请求的这一对象还不存在,我们在mysite/mysite下创建views.py,并在其中定义first_page函数:
minimize scroll-always\” style=\” margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important;\”>