程序编写网站-编写您的第一个 Django 应用程序,第 1 部分

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

让我们通过例子来学习。

通过本教程,我们将引导您创建一个基本的投票应用程序。

它将由两部分组成:

我们假设您已经阅读了安装 Django。 您可以通过在命令提示符处键入命令(以 $ 前缀)来判断 Django 是否已安装以及它的版本。

$ python -m django --version

...> py -m django --version

如果这行命令输出版本号,则证明你已经安装了该版本的Django; 如果您收到“No module named django”错误消息,则意味着您尚未安装它。

本教程是为 Django 2.1 编写的,它支持 Python 3.5 及更高版本。 如果Django版本不匹配,您可以通过页面右下角的版本切换器切换到您版本对应的教程,或者更新到最新版本。 如果您使用的是较旧版本的 Python,请寻找合适版本的 Django。

您可以参阅有关如何安装 Django 的文档,了解有关删除旧版本和安装新版本的过程和建议。

从那里获得帮助:

如果您在阅读或遵循本教程时遇到困难,请在 irc.freenode.net 上留言或加入#django,与其他可能为您提供帮助的 Django 用户聊天。

创建项目

如果这是您第一次使用 Django,您需要一些初始设置。 换句话说,您需要使用一些手动生成的代码来配置 Django——即 Django 项目实例所需的设置的集合,包括数据库配置、Django 配置和应用程序配置。

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

$ django-admin startproject mysite

...> django-admin startproject mysite

程序编写网站-编写您的第一个 Django 应用程序,第 1 部分

这行代码会在当前目录下创建一个mysite目录。 如果命令失败,看看,它可能对你有帮助。

注解

你必须避免使用 Python 或 Django 的内部保留字来命名你的项目。 具体来说,您需要避免使用 django(这将与 Django 本身冲突)或 test(这将与 Python 的外部组件冲突)之类的名称。

我的代码应该放在哪里?

如果您以前是一名原生 PHP 程序员(没有使用现代框架),您可能习惯将代码放在 Web 服务器的文档根目录中(例如 /var/www)。 使用 Django 时不需要这样做。 将所有 Python 代码放在 Web 服务器的根目录中并不是一个好主意,因为这是有风险的。 例如,它将增加人们在网站上看到您的代码的可能性。 这不利于网站的安全。

将代码放在文档根目录以外的位置,例如 /home/mycode。

让我们看看创建了哪些:

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

这些目录和文件的好处是:

用于开发的简单服务器

让我们确保您的 Django 项目实际上已成功创建。 如果您的当前目录不是内部 mysite 目录,请切换到该目录并运行以下命令:

$ python manage.py runserver

...> py 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.
三月 30, 2019 - 15:50:53
Django version 2.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

注解

忽略有关未应用最新数据库迁移的警告,我们稍后会处理该数据库。

您刚刚开始的是 Django 附带的易于开发的服务器,这是一个用纯 Python 编写的轻量级 Web 服务器。 我们在 Django 中将此服务器外部化,以便您可以快速开发您想要的内容,因为除非您准备好投入生产,否则不需要配置生产级服务器(例如 Apache)。 。

现在是提醒您的好时机:不要将此服务器用于与生产环境相关的任何内容。 该服务器仅供开发使用。 (我们是 Web 框架方面的专家,而不是 Web 服务器方面的专家。)

现在,服务器正在运行,浏览器访问:8000/。 您将看到一个“恭喜”页面,并且服务器已经像火箭发射一样运行。

改变端口

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

如果要更改服务器的监听端口,请使用命令行参数。 作为反例,以下命令将使服务器侦听端口 8080:

$ python manage.py runserver 8080

...> py manage.py runserver 8080

如果要更改服务器侦听的 IP,请在端口前输入新 IP。 例如,要窃听所有服务器的公共 IP(如果您正在运行 Vagrant 或想要向网络上的其他笔记本电脑显示您的工作,则很有用),请使用:

$ python manage.py runserver 0:8000

...> py manage.py runserver 0:8000

0 是 0.0.0.0 的缩写。 有关开发服务器的完整文档可以在参考文档中找到。

将手动重新加载的服务器

如有必要,用于开发的服务器将为每个访问请求重新加载Python代码。 所以你不需要经常重启服务器来让更改的代码生效。 但是,某些操作(例如添加新文件)不会触发手动重新加载,您必须自己自动重新启动服务器。

创建投票应用程序

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

在 Django 中,每个应用程序都是一个 Python 包并遵循相同的约定。 Django 附带了一个工具,可以帮助您生成应用程序的基本目录结构,以便您可以专注于编写代码而不是创建目录。

项目与应用程序

项目和应用程序有什么区别? 应用程序是一种只做一件事的 Web 应用程序,例如博客系统、公共记录数据库或简单的投票程序。 项目是网站使用的配置和应用程序的集合。 一个项目可以包含多个应用程序。 应用程序可供许多项目使用。

您的应用程序可以存储在 中定义的任何路径中。 在本教程中程序编写网站,我们将在与管理.py 相同的目录中创建投票应用程序。 这样它就会导出为顶级模块,而不是 mysite 的子模块。

确保您现在位于与 manage.py 相同的目录中,然后运行以下命令来创建应用程序:

$ python manage.py startapp polls

...> py 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 代码:

民意调查/views.py

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

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

要创建 URLconf,请在 polls 目录中创建一个新的 urls.py 文件。 您的应用程序目录现在应如下所示:

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

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

民意调查/urls.py

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

下一步是指定我们在根 URLconf 文件中创建的 polls.urls 模块。 在 mysite/urls.py 文件的 urlpatterns 列表中插入 include() ,如下所示:

我的网站/urls.py

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

函数允许引用其他 URLconf。 每当 Django 遇到 :func:~django.urls.include 时,它​​都会截断 URL 中与此匹配的部分,并将剩余的字符串发送到 URLconf 进行进一步处理。

我们的设计理念是使其即插即用。 由于民意调查应用程序有自己的 URLconf ( polls/urls.py ),因此可以将它们放置在“/polls/”、“/fun_polls/”、“/content/polls/”或应用程序都可以工作的任何其他路径下美好的。

何时使用

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

程序编写网站-编写您的第一个 Django 应用程序,第 1 部分

现在您已将索引视图添加到 URLconf 中。 您可以验证它是否正常工作,运行以下命令:

$ python manage.py runserver

...> py manage.py runserver

使用浏览器访问:8000/polls/,您应该能够看到“Hello, world. You're at the polls index.”,这是您在索引视图中定义的。

找不到网页?

如果您在此处收到错误页面,请检查您是否正在访问 :8000/polls/ 而不是 :8000/。

该函数有四个参数,两个必需参数:route 和 view,以及两个可选参数:kwargs 和 name。 现在,是时候研究这个参数的含义了。

参数:路线

路由是匹配 URL 的标准(类似于正则表达式)。 当 Django 响应请求时,它会按顺序匹配列表中的项目,从 urlpatterns 中的第一项开始,直到找到匹配项。

这些条件不会匹配 GET 和 POST 参数或域名。 例如,URLconf在处理请求时会尝试匹配myapp/。 处理请求时,只尝试匹配 myapp/.

参数:视图

当 Django 找到匹配条件时,它会调用特定的视图函数并传入一个对象作为第一个参数,“捕获”的参数作为关键字参数传入。 稍后我们会举一个反例。

参数:kwargs

任意数量的关键字参数可以作为字典传递给目标视图函数。 本教程中不会使用此功能。

参数:名称

为您的 URL 命名允许您在 Django 中的任何位置(尤其是在模板中)唯一地引用它。 这一有用的功能允许您通过仅更改一个文件来全局更改 URL 模式。

当您了解基本的请求和响应流程后程序编写网站,请阅读本教程的第 2 部分以开始使用数据库。

先说环境:

首先,我的项目是springBoot项目,我使用的编辑器是IDEA。 我的本地环境是:Windows10、JDK 1.8.0、MySQL 8.0、tomcat 1、购买服务器

首先我在阿里云上订购了服务器。 您可以点击这个阿里云分红链接,看看最近有没有分红。 如果您是新用户网站布置程序,可以使用新手礼包,获得更多利润分成。 当然,您也可以选择其他同类型的产品。

购买服务器的时候肯定会被要求选择系统:常用的有Windows和Linux,选择就看你熟悉哪一种了。 我对本文的选择是 Windows 2019

1.1 设置服务器的安全组(也可以使用默认安全组)

配置路径:控制台->侧边栏打开云服务器ECS->选择实例和镜像实例->检查当前打开的实例是否是您要处理的实例(如果有多个实例,一定要检查清楚) ) -> 打开网络和安全下的安全组 -> 单击配置规则

下图是我的设置:大家可以根据自己的需要进行配置。

1.2 远程连接服务器订购服务器后,打开阿里云控制台,复制服务器的公网IP。 打开自己笔记本的软件:“远程桌面连接”(无需下载,自带),在电脑一栏填入复制的公网IP地址,点击“显示选项”,即可看到本地资源,打开本地资源勾选选择剪贴板。

在本地资源中,打开详细信息。 在“驱动器”下选择一个分区(这个选定的分区可以在远程笔记本上看到,以便可以互相复制东西)单击“连接”,输入用户名和密码。 这里的用户名:Windows默认为Administrator; Linux默认为root。密码是您的实例密码:购买服务器时会发送到您的手机上(如果您不记得,可以在阿里云上更改实例密码(不是远程连接密码) ,点击:如何更改ECS实例密码二、准备工作2.1下载并安装项目所需的环境

首先,你需要下载你的项目运行所需的环境:以我的项目为例,我需要下载:MySQL依赖的JDK、Tomcat、MySQL、Microsoft Visual C++ 2015。 对应的版本建议与您本地的版本保持一致。 (可以直接在服务器笔记本上下载环境,也可以下载到本地,然后通过连接助手传输软件)

JDK安装配置 MySQL安装配置 2.2 打包项目

我使用IDEA来打包项目,以下步骤是Maven项目通用的

程序编写网站-编写您的第一个 Django 应用程序,第 1 部分

打开项目的pom.xml,看是否有下面这句话:

战争

,如果没有添加。 (tips:因为是web项目,建议打包成war包)

通过单击“构建”->“构建项目”来编译项目

单击 Maven 项目 -> 你的 Maven 项目 -> 打包到包中。 打包后可以在项目名/目标下找到对应的war包。

程序编写网站-编写您的第一个 Django 应用程序,第 1 部分

获取打包好的war包,打开cmd,进入war包所在目录,运行java -jar xxx.war,如果项目运行正常。 说明war包没有问题。

记住你的war包所在目录

2.3 准备sql文件(如果项目没有使用数据库则不会使用)

如果您的项目需要数据库

如果机器有可以连接数据库的软件,比如Navicat,就可以使用它连接的服务器数据库,然后将需要的数据复制到里面。 (此方法需要你的服务器开放3306端口,并在安全组中配置,使用Navicat连接阿里云ECS服务器上的MySQL数据库)

也可以在本机将对应的数据库解压成.sql文件,然后在服务器上运行。 (参考文章:MySQL命令行下执行.sql脚本)

3、在服务器上运行项目,将打包好的war放入tomcat的webapps目录下。 (如果Tomcat安装在项目外,则不需要这一步,你想放在那个目录下即可)启动cmd,进入war包所在目录,输入:java -jar xxx.war 启动战争包。 (一定要保证你的war包可以在本机上运行),如果所有服务都启动了,war包就可以正常运行了。 首先在服务器端网页上通过localhost:8080/项目名称访问项目,确保项目能够正常访问。然后在本机上输入:服务器网段:8080/项目名称即可访问项目 4.补充

程序编写网站-编写您的第一个 Django 应用程序,第 1 部分

在服务器上可以打开网页,在本机上打不开怎么办?

确保服务器端防火墙没有问题,可以阅读这篇文章:无法通过网段访问部署在阿里云服务器Tomcat下的项目五、域名绑定进入控制台->打开侧边栏->点击域名

选择“分析”

点击新手指南

在记录值中填写您服务器的公共IP地址

简单的绑定就完成了,这样你就可以在本地输入你的域名访问项目了。 (如果你的项目访问需要在路径中添加8080端口,改成域名后也需要在前面添加8080端口)

如果是台湾的服务器,想要域名常年可访问,就需要备案!

6、访问项目,消除8080端口网站布置程序,如果使用外部Tomcat,需要更改Tomcat目录下的/conf/server.xml,将端口号改为80

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>

如果是外部Tomcat,如果想去掉8080端口,在项目配置文件中将端口号设置为80即可。 比如我的配置文件是application.yml,在它前面添加:

server:
  port: 80

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站程序 程序编写网站-编写您的第一个 Django 应用程序,第 1 部分 https://www.wkzy.net/game/128244.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务