【Django第一步】第一部分:请求和响应
@[Django|翻译| python]
让我们通过例子学习
在本教程中,我们会引导你完成一个基本的调查应用程序,它由两部分组成:
- 一个让人查看调查结果并投票的网站
- 一个允许你添加,更改和删除调查的管理员网站
创建一个项目
pycharm下我们可以直接Create New Project->Django,在Location中填入对应的项目路径即可,这里我们使用mysite作为项目名。这里可能会稍微慢一点,因为pycharm需要在后台下载并安装相应的Django包等
现在我们可以查看新建的mysite项目的文件目录了
这些文件分别是
- 外部mysite/
目录只是项目的容器,它的命名与Django无关,你可以重命名为任何你想要的名字
- managy.py
一个命令行程序,使得你可以以各种方式与Django项目进行交互。你可以在django管理和manage.py中阅读所有细节
- 内部的mysite/
目录是项目的Python包,它的名字使你可以用来导入任何你想导入的包名,例如mysite.url
- mysite/__init__.py
:一个空文件,告诉Python这个目录应该被视为一个Python包。
- mysite/settings.py
:这个Django项目的设置/配置,你可以在Django设置中查看更多
- mysite/urls.py
:这个Django项目的URL声明; 您的Django支持的网站的“目录”。您可以在URL调度器中阅读更多关于URL的内容
- mysite/wsgi.py
:WSGI兼容的Web服务器为您的项目提供服务的入口点。有关更多详细信息,请参阅如何使用WSGI进行部署
现在,我们已经可以运行这个最初始版的app了 ,可以点击右上方的绿色三角形来运行,或者也可以使用命令行
python manage.py runserver
可能win上的朋友们还不知道怎么在pycharm里使用命令行,如果去百度的话可能出现更多的答案是配置环境变量啊blabla,然而其实很简单,pycharm早就集成了shell了,在项目的右下方,我们可以看到一个terminal,点击就进入了命令行了
运行命令,可以看到如下输出
现在,访问本地的127.0.0.1:8000
,即可看到Django的默认页面
更改默认端口:
只要在runserver后加上端口号即可,比如
python manage.py runserver 8080
就表示在8080端口运行
或者如果要收听的端口是一个范围的话,可以使用
python manage.py runserver 0:8000
就表示收听0到8000的所有端口
创建投票应用程序
在mysite项目中键入命令
python manage.py startapp polls
就新建了目录poll
,现在项目目录应如下所示
编写第一个视图
在polls/views.py
下加入以下代码
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
这是Django中最简单的视图,要调用该视图,我们需要把它映射到一个url下
在polls
目录下新建urls.py
在polls/urls.py
路径下添加以下代码
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
接下来要将url指向polls的urls,在mysite/urls.py
,添加导入django.urls.include
并include()
在urlpattens
列表插入
from django.urls import include, path
from django.contrib import admin
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
include()
函数允许引用其他的url,当Django遇到include()
时,会将字符串包含进去处理
如何使用include()
include()包含其他网址格式时,一定要使用,只有admin.site.urls可以不需要
接下来重新运行程序即可看到对应的页面http://127.0.0.1:8000/polls
path()函数
path函数传递四个函数,route
和view
是必需的,kwarg
和name
是可选参数
route
route是包含url模式的字符串,当出现请求时,Django从第一个模式开始urlpatterns并在列表中向下,将所请求的URL与每个模式进行比较,直到找到匹配的模式。
模式不搜索get和post参数或域名
view
当Django找到一个匹配的模式时,它会以一个HttpRequest对象作为第一个参数以及路由中的任何“捕获”值作为关键字参数来调用指定的视图函数。
name
命名您的URL可以让您从Django其他地方明确地引用它,特别是在模板中。这个强大的功能允许您在只修改单个文件的情况下对项目的URL模式进行全局更改