美文网首页Python
Django 2.0 官方教程—编写你的第一个Django应用程

Django 2.0 官方教程—编写你的第一个Django应用程

作者: leo567 | 来源:发表于2018-05-19 13:13 被阅读15次

    让我们通过例子来学习,在本教程中,我们将引导您完成基本应用程序的创建。

    它将由两部分组成:

    • 一个让人们查看民意调查并投票的公共网站。
    • 允许您添加,更改和删除民意调查的管理网站。

    我们假设你已经安装了Django。您可以通过在shell提示符下运行以下命令(由$前缀指示)来告诉Django已安装以及哪个版本:

    $ python -m django --version
    

    如果安装了Django,您应该会看到您的安装版本。如果不是,你会得到一个错误,告诉“No module named django”。本教程是为支持Python 3.4及更高版本的Django 2.0而编写的。


    创建一个项目####

    如果这是您第一次使用Django,那么您必须照顾一些初始设置。也就是说,您需要自动生成一些代码来建立一个Django 项目—一个Django实例的设置集合,包括数据库配置,Django特定的选项和特定于应用程序的设置。
    从命令行,cd到您想要存储代码的目录,然后运行以下命令:

    $ django-admin startproject mysite
    

    这将mysite在您当前的目录中创建一个目录。其目录的内容结构如下:

    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py
    

    这些文件功能:

    • mysite/根目录只是您项目的容器,它的名字与Django无关;,你可以将它重命名为任何你喜欢的名字。
    • manage.py:一个命令行实用程序,可让您以各种方式与此Django项目进行交互。
    • mysite/目录内部是您的项目的实际Python包,通过包名和文件名导入(例如mysite.urls)。
    • mysite/init.py:一个空文件,告诉Python这个目录应该被视为一个Python包。
    • mysite/settings.py:这个Django项目的设置/配置文件。
    • mysite/urls.py:这个Django项目的URL声明。
    • mysite/wsgi.py:WSGI兼容的Web服务器为您的项目提供服务的入口点。

    开发服务器

    让我们验证你的Django项目的作品。在mysite目录运行以下命令:

    $ python manage.py runserver
    

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

    • 更改端口

    默认情况下,该runserver命令在内部IP的端口8000上启动开发服务器。
    如果您想更改服务器的端口,请将其作为命令行参数传递。例如,该命令在端口8080上启动服务器:

    $ python manage.py runserver 8080
    

    如果您想更改服务器的IP,请将其与端口一起传递。例如,要收听所有可用的公共IP,请使用:

    $ python manage.py runserver 0:8000
    

    0是0.0.0.0的快捷方式

    • 自动重新加载 runserver

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


    创建投票应用程序####

    您在Django中编写的每个应用程序都包含遵循特定约定的Python包。Django带有一个实用程序,可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不是创建目录。

    • 项目与应用程序
        项目和应用程序有什么区别?应用程序是一种Web应用程序,它可以执行某些操作,例如Weblog系统,公共记录数据库或简单的轮询应用程序。项目是特定网站的配置和应用程序的集合。项目可以包含多个应用程序。一个应用程序可以在多个项目中

    要创建您的应用程序,请确保您位于相同的目录中manage.py 并键入此命令:

    $ python manage.py startapp polls
    

    应用程序polls其目录结构如下:

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

    编写你的第一个视图####

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

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

    这是Django中最简单的视图。要调用视图,我们需要将它映射到一个URL - 为此我们需要一个URLconf。
    要在polls目录中创建URLconf,请创建一个名为的文件urls.py。你的app目录现在应该如下所示:

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

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

    from django.urls import path
    
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),
    ]
    

    下一步是将项目URLconf指向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。每当Django遇到时include(),它会截断与该点匹配的URL的任何部分,并将剩余的字符串发送到包含的URLconf以供进一步处理。您现在已将index视图连接到URLconf。让我们验证它的工作,运行以下命令:

    $ python manage.py runserver
    

    在浏览器中转到http:// localhost:8000 / polls /,你应该看到文字“ Hello, world. You're at the polls index.“
    该path()函数传递四个参数,其中两个是必需的: route和view,以及两个可选的: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

    任意关键字参数可以在字典中传递给目标视图。

    • path()参数:name

    命名您的URL可以让您从Django其他地方明确地引用它,特别是在模板中。这个强大的功能允许您在只触摸单个文件的情况下对项目的URL模式进行全局更改。

    相关文章

      网友评论

        本文标题:Django 2.0 官方教程—编写你的第一个Django应用程

        本文链接:https://www.haomeiwen.com/subject/lrwodftx.html