首页 > 编程语言 >编写你的第一个 Django 应用程序,第1部分

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

时间:2023-04-15 21:58:58浏览次数:52  
标签:py mysite manage 应用程序 Django urls 服务器 编写

让我们通过示例来学习。

在本教程中,我们将引导您完成基本投票应用程序

它将由两部分组成:

  • 一个公共网站,允许人们查看投票并在其中投票。
  • 允许您添加、更改和删除投票的管理网站。

一、开发环境搭建

第一步当然就是安装 python,网上教程太多了,不再赘述。

第二步当然就是安装 django,直接使用

pip install django

本文使用 python 3.7.1

本文使用 django 3.2.18

 

二、创建项目

如果这是你第一次使用 Django 的话,你需要一些初始化设置。也就是说,你需要用一些自动生成的代码配置一个 Django project ——

即一个 Django 项目实例需要的设置项集合,包括数据库配置、Django 配置和应用程序配置。

打开命令行,cd  到一个你想放置你代码的目录,然后运行以下命令:

django-admin startproject mysite

 

 

 

 

 让我们看看 startproject 创建了什么:

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

三、启动服务

让我们验证一下你的 Django 项目是否有效。切换到外部目录 mysite/下,如果 您还没有,请运行以下命令:

python manage.py runserver

 

 

你将在命令行上看到以下输出:

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

April 15, 2023 - 15:50:53
Django version 4.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

注意

暂时忽略有关未应用数据库迁移的警告;我们将处理 很快与数据库。

现在服务器正在运行,请访问 http://127.0.0.1:8000/ 您的网站 浏览器。你会看到一个“恭喜!”页面,火箭起飞了。 成功了!

 

  

更改端口

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

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

 
$ python manage.py runserver 8080

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

 
$ python manage.py runserver 0.0.0.0:8000

开发服务器的完整文档可以在运行服务器参考中找到。

自动重新加载运行服务器

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

四、创建投票应用

现在您的环境(一个“项目”)已设置完毕,您可以开始了 做工作。

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

------------------------------------------------------

项目与应用程序

项目和应用有什么区别?应用就是网络 执行某些操作的应用程序 - 例如,博客系统,数据库 公共记录或小型民意调查应用程序。项目是 特定网站的配置和应用程序。一个项目可以包含 多个应用。一个应用可以位于多个项目中。

------------------------------------------------------

你的应用可以位于 Python 路径上的任何位置。在 在本教程中,我们将在与文件相同的目录中创建我们的投票应用程序,以便它可以作为自己的顶级模块导入, 而不是 的子模块。manage.pymysite

若要创建应用,请确保与 并键入以下命令位于同一目录中: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.shortcuts import render
from django.http import HttpResponse

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

这是 Django 中最简单的视图。要调用视图,我们需要映射 它到一个 URL - 为此我们需要一个 URLconf。

要在轮询目录中创建 URLconf,请创建一个名为 . 您的应用目录现在应如下所示:urls.py

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

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

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

from django.urls import path

from . import views

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

下一步是将根 URLconf 指向模块。在 mysite/urls.py 中,添加导入并在列表中插入 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。 每当 Django 遇到 include() 时,它都会砍掉任何 部分 URL 匹配到该点,并将剩余的字符串发送到 包含 URLconf 以供进一步处理。

您现在已经将视图连接到 URLconf 中。验证它是否适用于 以下命令:index

 
$ python manage.py runserver

转到浏览器中的 http://localhost:8000/polls/,您应该会看到 文本“你好,世界。您位于投票索引“,这是您在视图中定义的。index

 

 

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

path() 参数:route

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

模式不会搜索 GET 和 POST 参数或域名。例如 在请求 中,URLconf 将查找 。在请求 中, URLconf 也会寻找 .

https://www.example.com/myapp/myapp/

https://www.example.com/myapp/?page=3myapp/

path() 参数:view

当 Django 找到匹配的模式时,它会调用指定的视图函数 一个 HttpRequest 对象作为第一个参数和任何 从路由中“捕获”值作为关键字参数。我们举个例子 这有点。

path() 参数:kwargs

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

path() 参数:name

命名你的 URL 可以让你从 Django 的其他地方明确地引用它, 尤其是从模板内部。这个强大的功能使您可以制作 对项目的 URL 模式进行全局更改,同时仅接触单个 文件。

----------------------------end----------------------------------

 

 

 

 

 

标签:py,mysite,manage,应用程序,Django,urls,服务器,编写
From: https://www.cnblogs.com/xh2023/p/17321960.html

相关文章

  • Django中使用session,并设置过期时间
    Django中session的使用使用背景django中自带了一个数据库,名字是djang_session,用户做用户凭证。它有三个字段session_keysession_dataexpire_data这个数字会返回给客户端存储的相关信息过期时间流程:1.用户首次输入账户名和密码,服务端判断正确之后创建一个sesi......
  • django渲染模版时比实际少了8小时?
    这是因为django的时间是UTC时间.我们通过改配置文件将其改成本地时间修改配置文件#将时间从UTC转化成当前时间TIME_ZONE='Asia/Shanghai'#USE_TZ=Truehtml页面上面渲染<td>{{foo.create_datetime|date:"Y-m-dH:i:s"}}</td>......
  • django 按天统计发布单数量
    fromdatetimeimportdatetime,timedeltafromdjango.httpimportJsonResponsefromdeploy.modelsimportDeployPoolfromdjango.db.modelsimportCountdefget_a_month_deploy(request):return_list=[]now=datetime.no......
  • 02_JAVA编写高质量的代码
    高质量代码不仅仅要做到运行正确,还应做到可读性强、易于维护,简洁高效。......
  • django创建应用
    在manage.py所在的目录下,运行以下命令python3manage.pystartapppolls目录结构:一、编写第一个视图打开polls/views.py,输入以下代码fromdjango.urlsimportpathfrom.importviewsurlpatterns=[path("",views.index,name="index"),] 在polls/urls......
  • Django——视图
    Django的视图(View)一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中FBV与CBVFBV(FuncitonB......
  • 功能不够用?使用C++编写通达信插件及接入Python(一)
    第一次尝试,参照:http://www.xiaoyunyun.net/index.php/archives/53.html 和 https://blog.csdn.net/wiowei/article/details/121466094在绑定DLL环节失败了第二次尝试:参照:https://zhuanlan.zhihu.com/p/5698198681.修改VS2019,勾选 windows10SDK2.用Visualstudio打开......
  • django入门学习
    一、创建项目django-adminstartprojecttest1查看项目目录结构cdtest1tree test1:项目的容器。manage.py:一个实用的命令行工具,可让你以各种方式与该Django项目进行交互。test1/__init__.py:一个空文件,告诉Python该目录是一个Python包。test1/asgi.p......
  • Django Admin SimpleUI 自定义列
    DjangoAdminSimpleUI的一些简单用法注意事项:自定义列会遍历所有取出来的数据,需注意先定义下模型#models.pyclassDog(models.Model):name=models.CharField(max_length=15,verbose_name='小狗名字')age=models.IntegerField(verbose_name='小狗年龄',defa......
  • Django在类中使用装饰器
    类的视图函数中使用装饰器场景描述前后端分离项目后端暴露接口前端调用一个接口根据不同的请求方式处理不同的内容比如我有一个/user接口:get:返回成员信息post:添加信息put:修改信息delete:删除信息在每个请求中都需要判断凭证,也就是请求头中的某个字段,来鉴别用户身份,如果......