代码改变世界

2_创建应用

2017-12-22 11:49  Weiweim  阅读(268)  评论(0编辑  收藏  举报

django-admin是Django用于管理任务的命令行工具。

另外,manage.py在每个Django项目中都会自动创建。

其中, startproject用来创建django项目,

django-admin startproject name [directory]

为当前目录或给定目标中的给定项目名称创建一个Django项目目录结构。

$ django-admin startproject mysite

 

* 外部mysite/根目录只是项目的容器,可以重命名。

* manage.py:一个命令行实用程序,可让您以各种方式与此Django项目进行交互。

* 内部mysite/目录是您的项目的实际Python包。它的名字是你需要用来导入任何内容的Python包名(例如mysite.urls)。

* mysite/__init__.py:一个空的文件,告诉Python这个目录应该被认为是一个Python包。

* mysite/settings.py:jango项目的设置/配置。

* mysite/urls.py:Django项目的URL声明;Django支持的站点的“目录”。

* mysite/wsgi.py:WSGI兼容的Web服务器为您的项目提供服务的入口点。Django的主要部署平台是WSGI,即Web服务器和应用程序的Python标准。

在mysite目录下运行: $python manage.py runserver


现在服务器正在运行,请使用Web浏览器访问http://127.0.0.1:8000/, 你会看到一个“恭喜!”页面,一个火箭起飞。有效!


想要在网络上的其他计算机上展示您的工作,要更改服务器的IP,请将其与端口一起传递。

$ python manage.py runserver ip:8000

刷新页面, 会显示

您需要将ip添加到ALLOWED_HOSTS设置。在你的项目settings.py文件中,像这样设置ALLOWED_HOSTS:ALLOWED_HOSTS=['198.211.99.20','localhost','127.0.0.1']

另外, 启动server时后面要加完整的地址


创建民意调查程序


在Django中编写的每个应用程序都包含遵循特定约定的Python包。Django自带了一个实用程序,可以自动生成应用程序的基本目录结构。

项目可以包含多个应用程序。一个应用程序可以在多个项目中。一个应用程序是一个Web应用程序,它执行某些操作,例如Weblog系统,项目是特定网站的配置和应用程序的集合。

 


我们来写第一个视图。打开文件polls/views.py并将下面的Python代码放入其中:

from django.http import HttpResponse

def index(request):
return HttpResponse("Hello, world. You're at the polls index.")

要调用视图,我们需要将它映射到一个URL - 为此,我们需要一个URLconf。要在polls目录中创建URLconf,创建一个名为urls.py的文件。

在polls/urls.py文件里应该包含如下代码

from django.urls import include, path

urlpatterns = [
path('', views.index, name='index'),
]

下一步是在rootURLconf指向polls.urls模块。在mysite/urls.py,添加

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]

include()函数允许引用其他URLconf。背后的想法是include()使插入和播放网址变得容易。由于民意测验是在他们自己的URLconf(polls/urls.py)中,他们可以被放置在“/ polls /”下,或者在“/ fun_polls /”下,或者在“/ content / polls /”或者任何其他路径根目录下,都能工作。


现在你已经把一个index视图连接到了URLconf中。让我们验证它的工作,运行以下命令:

$python manage.py runserver

在你的浏览器中转到http://localhost:8000/polls/,应该看到在index视图中定义的文本“Hello, world. You're at the polls index.”。

path()函数传递四个参数,需要两个:route和view,和两个可选:kwargs和name。

path(route,view,kwargs=None,name=None)