Django笔记之1.1 请求和响应

编写你的第一个Django应用程序,第1部分



1.django版本

$ python -m django --version

2.创建项目

$ django-admin startproject mysite

创建如下:
mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

这些文件是:

  • 外部mysite/根目录只是项目的容器。它的名字对Django来说无关紧要; 你可以将它重命名为你喜欢的任何东西。
  • manage.py:一个命令行实用程序,允许您以各种方式与此Django项目进行交互。您可以manage.pydjango-admin和manage.py中阅读有关的所有详细信息 
  • 内部mysite/目录是项目的实际Python包。它的名称是您需要用来导入其中任何内容的Python包名称(例如mysite.urls)。
  • mysite/__init__.py:一个空文件,告诉Python该目录应该被视为Python包。如果您是Python初学者,请阅读官方Python文档中有关包的更多信息
  • mysite/settings.py:此Django项目的设置/配置。 Django设置将告诉您有关设置如何工作的所有信息。
  • mysite/urls.py:这个Django项目的URL声明; 您的Django支持的站点的“目录”。您可以在URL调度程序中阅读有关URL的更多信息
  • mysite/wsgi.py:与WSGI兼容的Web服务器的入口点,用于为您的项目提供服务。有关更多详细信息,请参阅如何使用WSGI进行部署


3.运行

$ python manage.py runserver

改变端口

默认情况下,该runserver命令在端口8000的内部IP上启动开发服务器。

如果要更改服务器的端口,请将其作为命令行参数传递。例如,此命令在端口8080上启动服务器:

$ python manage.py runserver 8080

如果要更改服务器的IP,请将其与端口一起传递。例如,要监听所有可用的公共IP(如果您正在运行Vagrant或想要在网络上的其他计算机上展示您的工作,这很有用),请使用:

$ python manage.py runserver 0:8000

00.0.0.0的快捷方式可以在runserver参考中找到开发服务器的完整文档

自动重装 runserver

开发服务器根据需要自动为每个请求重新加载Python代码。您无需重新启动服务器即可使代码更改生效。但是,某些操作(如添加文件)不会触发重新启动,因此在这些情况下您必须重新启动服务器。

4.创建应用 app
$ python manage.py startapp polls

那将创建一个目录polls,其布局如下:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

5.写第一个视图view

在该polls/urls.py文件中包含以下代码:

polls/urls.py
from django.urls import path

from . import views

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

下一步是将根URLconf指向polls.urls模块。 mysite/urls.py,添加导入django.urls.includeinclude()urlpatterns列表中插入 ,所以你有:

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。每当Django遇到时include(),它都会删除与该点匹配的URL的任何部分,并将剩余的字符串发送到包含的URLconf以进行进一步处理。

背后的想法include()是使即插即用的URL变得容易。由于民意调查位于他们自己的URLconf(polls/urls.py)中,因此可以将它们放在“/ polls /”下,或“/ fun_polls /”下,或“/ content / polls /”下,或任何其他路径根目录下,并且应用仍会工作。

什么时候用 include()

include()当您包含其他URL模式时,应始终使用 admin.site.urls是唯一的例外。

您现在已将index视图连接到URLconf。让我们验证它是否正常工作,运行以下命令:

$ python manage.py runserver

在浏览器中转到http:// localhost:8000 / polls /,您应该看到文本“ Hello,world。你在民意调查指数。“,您在index视图中定义的 

path()函数传递了四个参数,两个必需: routeview,以及两个可选:kwargs,和name在这一点上,值得回顾一下这些论点的用途。

path()参数:route

route是包含URL模式的字符串。处理请求时,Django从第一个模式开始urlpatterns并沿着列表向下移动,将请求的URL与每个模式进行比较,直到找到匹配的模式。

模式不搜索GET和POST参数或域名。例如,在请求中https://www.example.com/myapp/,URLconf将查找 myapp/在请求中https://www.example.com/myapp/?page=3,URLconf也会查找myapp/

path()参数:view

当Django找到匹配的模式时,它调用指定的视图函数,其中一个HttpRequest对象作为第一个参数,并且路由中的任何“捕获”值作为关键字参数。我们稍后会给出一个例子。

path()参数:kwargs

任意关键字参数可以在字典中传递到目标视图。我们不打算在教程中使用Django的这个功能。

path()参数:name

命名您的URL可让您从Django的其他地方明确地引用它,尤其是在模板中。此强大功能允许您在仅触摸单个文件的同时对项目的URL模式进行全局更改。

如果您对基本请求和响应流感满意,请阅读 本教程的第2部分以开始使用数据库。


猜你喜欢

转载自blog.csdn.net/ly18846188164/article/details/81053316