本站消息

站长简介/公众号


站长简介:高级软件工程师,曾在阿里云,每日优鲜从事全栈开发工作,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-12(12)

2021-01(41)

荐Django学习(三)——创建主页

发布于2020-03-13 11:15     阅读(939)     评论(0)     点赞(2)     收藏(3)



参考书籍:《Python编程从入门到实践》—Eric Matthes

使用Django创建网页的过程通常分为三个阶段:定义URL、编写视图和编写模板。

  • URL模式描述了URL是如何设计的,让Django知道如何将浏览器请求与网站URL匹配,以确定返回哪个网页。
  • 每个URL都被映射到特定的视图——视图函数获取并处理网页所需的数据。视图函数通常调用一个模板,后者生成浏览器能够理解的网页

映射URL

URL(Uniform Resource Locator,统一资源定位符)是WWW的统一资源定位标志。

组成:资源类型、存放资源的主机域名、资源文件名。(或者协议、主机、端口、路径)


目前我们的URL(https://localhost:8000/)映射到的是Django网站。所以我们现在需要将它映射到我们自己的主页。

打开learning_logs目录下的urls.py文件可以看到:

from django.conf.urls import include, url
from django.contrib import admin
 
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
]
  • 前两行导入了为项目和管理网站管理URL的函数和模块
  • urlpatterns变量包含项目中应用程序的URL
  • admin.site.urls是一个模块,定以了可在管理网站中请求的所有URL

我们在urlpatterns列表里的末尾加上

url(r'', include(('learning_logs.urls'), namespace='learning_logs')),

用来包含模块learning_logs.urls。参数namespace的作用是将learning_logs的URL与项目其他URL区分开。


现在我们需要在文件夹learning_logs中创建另一个urls.py文件(注意目录!!!)

from django.conf.urls import url
from . import views 
urlpatterns = [
    #主页
    url(r'^$',views.index,name='index'),
]
  • 导入url的目的需要使用它来将URL映射到视图

  • 句点让Python从当前的urls.py的文件夹中导入视图

  • 变量urlpatterns是一个列表,包含可在应用程序learning_logs中请求的网页

URL模式实则是对函数url()的一个调用。url()接受三个实参。第一个是正则表达式,第二个实参指定了要调用的视图函数。第三个参数将这个URL模式的名称指定为index,让我们能够在代码的其他地方引用它。

正则表达式(regex)

r'^$':

  • r的作用是让python将接下来的字符串视为原始字符串
  • 脱字符^让python查看字符串的开头
  • $让python查看字符串的结尾。

这个表达式的意思是只查找开头和末尾之间没有任何东西的URL即基础URL(http://localhost:8000/)

编写视图

视图函数接受请求中的信息,准备好生成网页所需的数据,再将这些数据发送给浏览器。这通常是使用定义了网页是什么样的模板实现的。

打开learning_logs目录下的views.py

目前只导入了函数render(),它根据视图提供的数据渲染响应:

from django.shortcuts import render

为主页编写视图

def index(request):
    """学习笔记的主页"""
    return render(request,'learning_logs/index.html')

URL请求与我们刚才定义的模式匹配时,Django将在文件views.py中查找函数index(),再将请求对象传递给这个视图函数。在这里,我们不需要处理任何数据,因此这个函数只包含调用 render()的代码。这里向函数render()提供了两个实参:原始请求对象以及一个可用于创建网页的模板

编写模板

在文件夹learning_logs中新建一个文件夹,并将其命名为templates。在文件夹templates中,再新建一个文件夹,并将其命名为learning_logs。

即learning_logs->templates->learning_logs

新建文件index.html

<p>Learning Log</p>
<p>Learning Log helps you keep track of your learning, for any topic you're learning about.</p> 

这里定义了两个锻炼:第一个充当标题,第二个阐述了用户可使用学习笔记做什么。







所属网站分类: 技术文章 > 博客

作者:898shd

链接:https://www.pythonheidong.com/blog/article/256095/8e1b4c41d50919bcfea9/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

2 0
收藏该文
已收藏

评论内容:(最多支持255个字符)