美文网首页
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