美文网首页
Django笔记5:第一个首页

Django笔记5:第一个首页

作者: _百草_ | 来源:发表于2021-08-04 19:13 被阅读0次
    20210803
    2020
    • 一个HTML如何通过django来展示到浏览器
      用户视角的网页构成:
    1. HTML模板:类似树干
    2. 展示的数据:类似树叶
    3. HTML静态语言:形成树干树叶的语言
    4. JS脚本语言:页面各种动态行为的脚本
    5. CSS样式:美化树干树叶的装饰方法
    • 用户访问平台的逻辑
    1. 用户打开浏览器,输入url
    2. django服务器接到这个url的请求
    3. django服务器根据这个url找到对应的后台函数
    4. 找到后台函数后,后台函数执行(做一件事),返回一个html首页模板,外加初始化的数据;返回打包给浏览器
    5. 浏览器接到html模板+数据后,组合成一个完整的网页展示给用户
    • django项目中按照上述过程实践
    1. django服务中添加 url和后台函数的映射=>django跟进url找到对应的后台函数
      映射关系:urls.py,自动生成映射如下:
    """pro_0804 URL Configuration
    
    The `urlpatterns` list routes URLs to views. For more information please see:
        https://docs.djangoproject.com/en/3.2/topics/http/urls/
    Examples:
    Function views
        1. Add an import:  from my_app import views
        2. Add a URL to urlpatterns:  path('', views.home, name='home')
    Class-based views
        1. Add an import:  from other_app.views import Home
        2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
    Including another URLconf
        1. Import the include() function: from django.urls import include, path
        2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
    """
    from django.contrib import admin
    from django.urls import path
    
    urlpatterns = [
        path('admin/', admin.site.urls),
    ]
    

    实际是列表,每个元素都有一个映射;每个元素调用一个库函数,2个值:url、后台函数名
    格式:

    [
    库函数('url1', '后台函数1'),
    库函数('url2', '后台函数2'),
    ]
    
    • 后台函数写在view.py中,也可以新建其他的
      所以urls.py中导入view的所有内容from pro_0804.app_0804.views import *
    ## 映射表更新
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('welcome/', welcome), # 进入主题
    ]
    

    注:鼠标不要点击pycharm外,否则django会监控文件更改,而自动启动;然后重启发现代码错误标红,则服务会终止

    Error 1 :Page not found

    error 1
    解决办法:浏览器访问时,输入http://10.202.141.60:8000/welcome/,访问正常
    image.png

    Error 2:didn't return an HttpResponse object

    控制台打印print表示urls无误
    解决方法:
    from django.shortcuts import render
    from django.http import HttpResponse, HttpResponseRedirect
    # Create your views here.
    
    
    def welcome(request):
        # print("welcome to pro!")
        return HttpResponse("welcome to pro!")
    
    # HttpResponse 返回一个字符串,后续返回的json格式的字符串也可以使用它
    An HTTP response class with a string as content.
    This content can be read, appended to, or replaced.
    # HttpResponseRedirect 用于重定向到其他url
    # render 用来返回html页面和页面初始数据
    Return a HttpResponse whose content is filled with the result of calling
        django.template.loader.render_to_string() with the passed arguments.
    

    相关文章

      网友评论

          本文标题:Django笔记5:第一个首页

          本文链接:https://www.haomeiwen.com/subject/ungsvltx.html