zoukankan      html  css  js  c++  java
  • django学习-安装、创建应用、编写视图

    快速安装指南

    py -3 -m pip install django

     

    >>> import django

    >>> django.get_version()

    '2.2.6'

    查看版本也可以这样:

    C:UsersLenovo>py -m django --version

    2.2.6

    编写第一个Django应用-投票应用程序

    投票应用程序由两部分组成:

    一个让人们查看和投票的公共站点

    一个让你能添加、修改和删除投票的管理站点

    创建项目django-admin startproject mysite

    运行以下命令,会在当前目录下创建一个mysite目录。

    D:django>django-admin startproject mysite

    我们来看下startproject创建了什么

    startproject命令产生的目录和文件的用处

    mysite/根目录是你项目的容器,可以重命名为其他名字。

    manage.py:一个让你用各种方式管理django项目的命令行工具。

    里面一层的mysite/目录包含你的项目,他是一个纯python包。它的名字就是当你引用它内部任务东西时需要用到的python包名。(如mysite.urls)

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

    mysite/settings.py:django项目的配置文件。

    mysite/urls.py:django项目的URL声明,就像你网站的“目录”。

    mysite/wsgi.py:作为你的项目的运行在wsgi兼容的web服务器上的入口

    用于开发的建议服务器

    运行py -3 -m manage.py runserver启动django自带的简易服务器

    刚刚启动的是django自带的用于开发的建议服务器,它是一个用纯python写的轻量级的web服务器。我们将这个服务器内置在django中是为了让你能快速的开发出想要的东西,因为你不需要进行配置生产级别的服务器(如apache)方面的工作,除非你已经准备好投入生产环境了。

    访问https://127.0.0.1:8000/,你将会看到django的页面。

    更换端口和ip

    默认情况下,runserver命令会将服务器设置为监听本机内部IP的8000端口。

    如果想更换服务器的监听端口,可以运行下面的命令修改端口

    py -3 manage.py runserver 8080

    如果想修改服务器监听的ip,可以在端口之前输入新的。如,为了监听所有服务器的公开ip,使用:

    py -3 manage.py runserver 0:8000

    0是0.0.0.0的简写

    创建投票应用

    在django中,每一个应用都是一个python包,并且遵循着相同的约定。django自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。

    项目VS应用

    项目和应用有啥区别?应用时一个专门做某件事的网络应用程序—比如博客系统,或者公共记录的数据库,或者简单的投票程序。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。

    你的应用可以存放在任何python path中定义的路径。在本教程中,我们将在manage.py统计目录下创建投票应用。这样它就可以作为顶级模块导入,而不是mysite的子模块。

    在manage.py所在目录下,运行命令来创建应用

    运行命令:py -3 manage.py startapp polls

    这会在manage.py同级目录下创建一个polls目录,结构如下图:

    这个目录结构包括了投票应用的全部内容

    编写第一个视图

    在polls/view.py中输入以下代码,编写第一个视图:

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

    这时django中最简单的视图。如果想看见效果,我们需要将一个URL映射到它—这就是我们需要URLconf的原因了。

    创建URLconf

    为了创建URLconf,请在polls目录里创建一个urls.py文件。你的应用目录现在看起来应该是这样:

     

    在polls/urls.py中,输入如下代码:

    from django.urls import path
    
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),
    ]
    在根URLconf文件中指定我们创建的polls.urls模块

    下一步是要在根URLconf文件中指定我们创建的polls.urls模块

    在mysite/urls.py文件的urlpatterns列表里插入一个include(),如下:

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

    函数include()允许引用其他URLconfs。每当遇到:func: ~django.urls.include时,它会截断与

    此匹配的URL的部分,并将剩余的字符串发送到URLconf以供进一步处理。

    我们设计include()的理念是使其可以即插即用。因为投票应用有它自己的URLconf(pools/urls.py),他们能够被放在”/polls/”,”/fun_polls/”,”/content/polls/”,或者其他任何路径下,这个应用都能够正常工作。

    何时使用include()

    当包括其他URL模式时你应该总是使用include(),admin.site.urls是唯一例外。

    现在已经把index视图添加进了URLconf。可以验证是否正常工作,运行下面的命令:

    py -3 manage.py runserver

    访问http://localhost:8000/polls/

    页面上可以看到我们定义的文字:

    "Hello, world. U r at the polls index."

     

    函数path()具有四个参数

    函数path()具有四个参数,两个必须参数:route和view,两个可选参数:kwargs和name。

    mysite/urls.py
    urlpatterns = [
        path('polls/', include('polls.urls')),
        path('admin/', admin.site.urls),
    ]
    polls/urls.py:
    urlpatterns = [
        path('', views.index, name='index'),
    ]
    path()参数:route

    route是一个匹配URL的准则(类似正则表达式)。当django响应一个请求时,它会从urlpatterns的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。

    这些准则不会匹配GET和POST请求的参数或域名。例如URLconf在处理请求https://www.example.com/myapp/时,它会尝试匹配myapp/

    处理请求https://www.example.com/myapp/?page=3时,也只会尝试匹配myapp/

    path()参数:view

    当django找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个HttpRequest对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。

    def index(request):
        return HttpResponse("Hello, world. U r at the polls index.")
    path()参数:kwargs

    任意个关键字参数可以作为一个字典传递给目标视图函数。

    path()参数:name

    为你的URL取名能使你在django的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个URL模式(没太理解)。

    polls/urls.py:
    urlpatterns = [
        path('', views.index, name='index'),
    ]
  • 相关阅读:
    MYSQL数据库设计规范与原则
    PHP-CI框架数据库连接默认是长连接,需要注意应用场景
    mysql性能调优与架构设计笔记
    JavaScript学习笔记
    PHP一维数组和二维数字排序整理
    MYSQL常用的Show命令笔记
    设计模式之建造者模式
    设计模式之工厂模式
    设计模式前提篇二(C++编程原则)
    设计模式前提篇一(C++/基础)
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/11626055.html
Copyright © 2011-2022 走看看