Python笔记:Django框架做web开发(二)

2018年9月25日 933 次阅读 0 条评论 0 人点赞

前景回顾

上一篇文章,主要做了以下内容:
1.安装Django,搭建开发环境;
2.创建了一个项目mysite;
3.成功启动了Django开发服务器;
4.成功的访问了Django欢迎界面;
以上内容如果未实现的请访问上一篇文章:传送门:Python笔记:Django框架做web开发(一)
环境搭建完成以后,接下来开始干活吧。

创建投票应用

要创建应用程序,请确保进入与manage.py文件位于同一目录中:
通过CD命令进入项目路径:

cd D:\mysite

进入文件目录以后,键入以下命令:

python manage.py startapp polls

执行成功以后,将创建一个目录polls:

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

见到以上文件,表明投票应用polls应用创建成功。

编辑视图

视图在 Django 中非常重要,是连接页面与数据的中间纽带。例如登陆系统,用户在页面上输入了用户名和密码点击登录。那么 request 请求会由视图来接收,如何提取出用户名和密码的数据,如何用这些数据去查询数据库,再如何将登录成功的页面返回给用户,这些工作全部由视图层来处理;使用IDE工具打开项目文件目录(笔者使用PyCharm),然后打开文件polls/views.py;
编辑以下内容:

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

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

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 文件的 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。每当 Django 遇到 :func:~django.urls.include 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。
我们设计 include() 的理念是使其可以即插即用。因为投票应用有它自己的 URLconf( polls/urls.py ),他们能够被放在 "/polls/" , "/fun_polls/" ,"/content/polls/",或者其他任何路径下,这个应用都能够正常工作。
以上操作将index 视图添加进了 URLconf。接下来验证是否正常工作,进入manage.py文件目录运行下面的命令:

python manage.py runserver

成功启动服务:

D:\mysite
λ  python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

September 25, 2018 - 16:26:35
Django version 2.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

输入http://127.0.0.1:8000/网址访问,会出现以下错误信息:
后台服务返回日志:

Not Found: /
[25/Sep/2018 17:31:54] "GET / HTTP/1.1" 404 2027

出现以上错误是因为,你访问的地址应该是:

http://127.0.0.1:8000/polls/

而不是

http://127.0.0.1:8000/

输入地址

http://127.0.0.1:8000/polls/

重新访问,验证成功,如下所示:
执行成功以后看到:Hello, world. You're at the polls index.这是你在 index 视图中定义的。实现了以上功能,就是最基础的应用视图开发。View视图,当Django找到匹配的模式时,它调用指定的视图函数,其中一个HttpRequest对象作为第一个参数,并且路由中的任何“捕获”值作为关键字参数。

风里云里,我在这里等你!

文章评论(0)