php抓取网页匹配url(PythonDjangoDjango应用投票)
优采云 发布时间: 2021-11-18 23:18php抓取网页匹配url(PythonDjangoDjango应用投票)
编写您的第一个 Django 应用程序,第 1 部分
让我们以身作则。
通过本教程,我们将带您创建一个基本的投票应用程序。
它将由两部分组成:
我们假设您已经阅读了有关安装 Django 的内容。在命令提示符下输入命令(以$为前缀)就可以知道Django已经安装完毕以及安装的是哪个版本。
$ python -m django --version
...\> py -m django --version
如果这行命令输出一个版本号,则证明你已经安装了这个版本的Django;如果您收到“No module named django”错误消息,则表示您尚未安装它。
本教程是为 Django 3.2 编写的,支持 Python 3.6 及后续版本。如果Django版本不匹配,您可以通过页面右下角的版本切换器切换到您版本对应的教程,或者更新到最新版本。如果您使用的是旧版本的 Python,请寻找合适的 Django 版本。
您可以查看文档 How to Install Django 以获取删除旧版本和安装新版本的过程和建议。
从哪里获得帮助:
如果您在阅读本教程时有任何疑问,可以转到常见问题部分寻求帮助。
创建项目
如果这是您第一次使用 Django,则需要一些初始设置。换句话说,你需要用一些自动生成的代码来配置一个 Django——即一个 Django 项目实例所需的设置集合,包括数据库配置、Django 配置和应用程序配置。
打开命令行,cd 到要放置代码的目录,然后运行以下命令:
$ django-admin startproject mysite
...\> django-admin startproject mysite
这行代码将在当前目录中创建一个 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
asgi.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.
十一月 18, 2021 - 15:50:53
Django version 3.2, 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),除非您准备将其放入生产环境。
现在是提醒您的好时机:切勿在任何与生产环境相关的地方使用此服务器。此服务器仅用于开发。(我们是网络框架方面的专家,但不是网络服务器方面的专家。)
现在,服务器正在运行,浏览器访问: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 附带了一个工具,可以帮助您生成应用程序的基本目录结构,因此您可以专注于编写代码而不是创建目录。
项目 VS 应用
项目和应用程序有什么区别?应用程序是专门用于执行某些操作的 Web 应用程序,例如博客系统、公共记录数据库或小型投票程序。该项目是 网站 使用的配置和应用程序的集合。该项目可以收录许多应用程序。该应用程序可用于许多项目。
您的应用程序可以存储在定义的任何路径中。在本教程中,我们将在与您的 manage.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 中,输入以下代码:
民意调查/网址.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 遇到它时,它都会截断 URL 中与此项匹配的部分,并将剩余的字符串发送到 URLconf 以进行进一步处理。
我们的设计理念是即插即用。因为投票应用程序有自己的 URLconf (polls/urls.py),它们可以放置在“/polls/”、“/fun_polls/”、“/content/polls/”或任何其他路径中。可以正常工作。
何时使用
在收录其他 URL 模式时,您应该始终使用 include(),admin.site.urls 是唯一的例外。
您现在已将索引视图添加到 URLconf。使用以下命令验证它是否正常工作:
$ python manage.py runserver
...\> py manage.py runserver
使用浏览器访问:8000/polls/,应该可以看到“Hello, world. You're at the polls index.”,在index视图中定义。
没有找到页面?
如果您在此处看到错误页面,请检查您是否正在访问 :8000/polls/ 而不是 :8000/。
该函数有四个参数,两个必需参数:route 和 view,以及两个可选参数:kwargs 和 name。现在,是时候研究这些参数的含义了。
参数:路由
route 是匹配 URL 的标准(类似于正则表达式)。当 Django 响应请求时,它会从 urlpatterns 的第一项开始,依次匹配列表中的项,直到找到匹配项。
这些条件将不匹配 GET 和 POST 参数或域名。例如,当 URLconf 处理请求时,它会尝试匹配 myapp/。在处理请求时,它只会尝试匹配 myapp/。
参数:查看
当 Django 找到匹配条件时,它会调用这个特定的视图函数并传入一个对象作为第一个参数。“捕获的”参数作为关键字参数传入。我们稍后会举一个例子。
参数:kwargs
可以将任意数量的关键字参数作为字典传递给目标视图函数。本教程将不使用此功能。
参数:名称
命名你的 URL 允许你在 Django 的任何地方唯一地引用它,尤其是在模板中。这一有用的功能允许您通过仅更改一个文件来全局修改 URL 模式。
在您了解基本的请求和响应过程后,请阅读教程的第 2 部分以开始使用数据库。