zoukankan      html  css  js  c++  java
  • 102-显示一个真正的页面

    1、首先我们要在FreeNote工程下,创建一个供我们学习的app,这有利于将学习代码和正式代码分开。

    命令如下:

    lzhshn@lzhshn-Ryzen:~/PycharmProjects/FreeNote$ python3 manage.py startapp test_app

    回车后,将得到一个新的文件夹:test_app。里面包括很多文件:

    lzhshn@lzhshn-Ryzen:~/PycharmProjects/FreeNote/test_app$ dir
    admin.py  apps.py  __init__.py    migrations  models.py  __pycache__  tests.py  views.py

    这里先不着急一一研究,我们只需要知道views.py即可,之后,将要在这里编写第一个用于显示网页的函数;

    此外,在test_app文件夹下,还需要新增一个文件:test_urls.py,看这个命名,你大概就知道这应该是一个和当前test_app有关的一个设置urls的东西;

    根据django的逻辑:由路径指向views函数,然后由views函数渲染出一个页面,上面这两步做完,准备工作就完成了。

    2、找到/PycharmProjects/FreeNote/FreeNote下的urls.py,配置test_app的入口

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

     这里面增加了include的引用,这个引用表示:如果在url中发现了test_app,则一定将test_app/后的内容去test_app下的test_urls里匹配,如果没有,则报错,如果匹配不到也报错。

    也有把这种写法叫路由,这个可能更好理解。

    3、设定一个views函数

    from django.shortcuts import render
    from django.shortcuts import HttpResponse
    
    
    # Create your views here.
    
    def first_page(request):
        return HttpResponse('这是第一个页面。页面虽然简单,但是五脏俱全,已经涉及到了django的更多方面。')
    

     HttpResponse是一种简单的网页返回方式,纯文本不带格式。这里我们只需要显示一个简单的网页,所以使用了这种模式,注意它的引入格式:from django.shortcuts import HttpResponse。

    根据django的逻辑:用一个url指向views函数,然后函数再渲染页面。现在函数写好了,是不是写一个url指向它,然后输入到浏览器的地址栏就能看到了?

    的确如此!但是我们要用到第2节里提到的路由。

    4、设置test_app自己的urls

    在test_app下新建一个文件:test_urls.py。很多教程中会直接把这个文件也命名为urls.py,但是为了和工程文件的主urls区分,个人不建议这么做。此外,新建这种文件,在pycharm里操作更方便,不建议直接去ubuntu的文件夹里新建。

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

     这里和主urls一样,都要引入path,另外就是要引入本app下的views文件,由于是本app下,使用.来表示来源即可。

    path的写法:

    first_page的用意是:如果在地址栏输入了test_app/first_page,将定位到views.first_page;

    views.first_page是函数def first_page(request),但是这里不要有括号;

    最后是这个path的名称定义,其名称为first_page,在之后的模板中需要定位时,会经常用到name。

    5、输入http://127.0.0.1:8000/test_app/first_page/,即可看到一个真正的我们自己写的网页,当然这还非常原始。

    从地址可以看到:

    http://127.0.0.1:8000/是这个FreeNote网站的最外层地址;

    test_app/是这个网站下的一个app;

    first_page/是app的一个页面,它通过一个叫def first_page(request)的函数渲染出来。

  • 相关阅读:
    C#.Net Winform 应用程序莫名其妙崩溃。
    不小心点击安装了搜狗手机助手,顿时有一种草搜狗全体人员的感觉。
    家乐福张江店班车时刻表
    为什么学习设计模式
    同一端口如何区分不同的Socket
    用命令行CMD .bat 相关操作 如: 创建快捷方式 复制文件等
    C++ 时间获取和时间测量
    get all ODBC drivers 驱动
    命令行 编译C#.NET项目
    如何打开.hlp文件指定的topic
  • 原文地址:https://www.cnblogs.com/lzhshn/p/11368331.html
Copyright © 2011-2022 走看看