zoukankan      html  css  js  c++  java
  • 使用Django搭建web应用程序(二)

    上篇中我们使用超级管理员权限创建了数据,本片我们接着将自定义的网页展示在主页上

    1. 映射URL

    用户通过在浏览器输入URL来请求网页,其中主页的URL最重要,当前基础URL(http://127.0.0.1:8000/)返回的是默认的Django网站,只是让我们知道正确的建立了项目,并不是我们自己的主页。

    打开项目主文件夹(文件夹中包含ashi.py,settings.py,urls.py, wsgi.py,后面用文件夹1代指),打开其中的urls.py文件,修改为以下内容

     1 """pizzeria URL Configuration
     2 
     3 The `urlpatterns` list routes URLs to views. For more information please see:
     4     https://docs.djangoproject.com/en/3.1/topics/http/urls/
     5 Examples:
     6 Function views
     7     1. Add an import:  from my_app import views
     8     2. Add a URL to urlpatterns:  path('', views.home, name='home')
     9 Class-based views
    10     1. Add an import:  from other_app.views import Home
    11     2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
    12 Including another URLconf
    13     1. Import the include() function: from django.urls import include, path
    14     2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
    15 """
    16 from django.contrib import admin
    17 from django.urls import path
    18 from django.conf.urls import include, url
    19 
    20 urlpatterns = [
    21     path('admin/', admin.site.urls),
    22     path('', include('pizzas.urls')),
    23 ]

    其中最重要的是第21,22行代码,urlpatterns中包含了本项目中请求的所有URL,目前有admin  和 默认主页面

    此时我们还需要在应用程序所在文件夹中(其中包含models.py、 admin.pyviews.py,后面用文件夹2代指 )创建文件urls.py

     1 """定义pizzas的URL模式"""
     2 
     3 from django.conf.urls import url    # 将URL映射到视图
     4 from django.urls import path
     5 from . import views     # 从当前urls.py所在的文件夹中导入views
     6 
     7 urlpatterns = [
     8     # 主页
     9     path('', views.index, name='index'),    # 第二个实参制定了要调用的视图函数,第三个实参将URL模式名称指定为index,让我们能够在代码的其他地方使用它
    10 ]

    2. 编写视图

    视图函数接收请求中的信息,准备好生成网页所需要的数据,再将这些数据发送给浏览器

    应用程序所在文件夹中的views.py是执行命中python manage.py startapp时自动生成的,将其修改为以下内容

    1 from django.shortcuts import render
    2 
    3 # Create your views here.
    4 
    5 
    6 def index(request):
    7     """披萨网站的主页"""
    8     return render(request, 'pizzas/index.html')

    3. 编写模板

    模板指定了网页是什么样的, 而每当网页被请求时, Django将填入相关的数据。

    模板让你能够访问视图提供的任何数据 。

    首先按照这个路径创建一个文件:

    文件夹2 enplates文件夹2名index.html

    这样做的目的是建立了Django能够明确解读的结构,在项目很大包含许多应用程序时更加明确。

    <p>Welcome to my PIZAA shop!</p>
    
    <p>Here you can get all kinds of pizzas, and you can also see how to make pizza.</p>

    此时再重新请求项目的基础URL时,我们将看到网页展示的是我们所创建的index.html的内容

    中间遇到的报错:

    TypeError: view must be a callable or a list/tuple in the case of include().

    原代码

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', 'pizzas.urls', namespace='pizzas'),
    ]

    解决方法:

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include('pizzas.urls')),
    ]

    如果要用namespace= 'pizzas',需要在文件夹2的urls.py中添加:

    app_name = 'pizzas'

    最懒的人就是整天忙得没时间学习、反思、成长的人。
  • 相关阅读:
    展望2018
    Android按下home键后重新打开app进入主activity的问题
    RxJava整合Retrofit遇到的问题总结
    【总结】四种逆元的求法
    【NOIP模板汇总】I Am Me
    【总结】两类素数筛详解
    【NOIP2009】最优贸易
    【SHOI2002】滑雪
    【51NOD1398】等公交
    【复习总结】玫瑰人生 La Vie en Rose
  • 原文地址:https://www.cnblogs.com/jockeyhao/p/14706044.html
Copyright © 2011-2022 走看看