首页 > 编程语言 >Python从入门到实践project Web 应⽤程序 Django ⼊门.2

Python从入门到实践project Web 应⽤程序 Django ⼊门.2

时间:2023-12-24 17:32:16浏览次数:26  
标签:Web logs Python topics Django topic learning entries content

project Web 应⽤程序

Django ⼊门

1.创建网页:学习笔记主页
2.创建其他网页

创建网页:学习笔记主页

映射 URL

from django.urls import path, include
path('', include('learning_logs.urls')),

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_html

"""定义 learning_logs 的 URL 模式"""
from django.urls import path
from . import views

app_name = 'learning_logs'
urlpatterns = [
# 主⻚
path('', views.index, name='index'),
 ]

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_project Web 应⽤程序_02

编写视图

def index(request):
    # 添加为主⻚编写视图的代码
    """学习笔记的主⻚"""
    return render(request, 'learning_logs/index.html')

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_Django ⼊门_03

编写模板

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

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_Django ⼊门_04

创建其他⽹⻚

模板继承

01. ⽗模板
<p>
<a href="{% url 'learning_logs:index' %}">Learning Log</a>
 </p>
{% block content %}{% endblock content %}

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_html_05

02. ⼦模板
{% extends 'learning_logs/base.html' %}
 {% block content %}
<p>Learning Log helps you keep track of your learning, for any topic
you're
interested in.</p>
 {% endblock content %}

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_django_06

显⽰所有主题的⻚⾯

01. URL 模式
# 显⽰所有主题的页面
path('topics/', views.topics, name='topics'),

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_project Web 应⽤程序_07

02. 视图

from .models import Topic

def topics(request):
    """显⽰所有的主题"""
    topics = Topic.objects.order_by('date_added')    # 查询数据库:请求提供 Topic 对象,并根据属性 date_added 进⾏排序
    context = {'topics': topics}   # 定义⼀个将发送给模板的上下⽂,上下⽂(context)是⼀个字典
    return render(request, 'learning_logs/topics.html', context)

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_Web_08

03. 模板
 {% extends 'learning_logs/base.html' %}

 {% block content %}

    <p>Topics</p>

     <ul>
        {% for topic in topics %}
            <li>{{ topic.text }}</li>
        {% empty %}
             <li>No topics have been added yet.</li>
        {% endfor %}
     </ul>

 {% endblock content %}

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_Django ⼊门_09

<a href="{% url 'learning_logs:index' %}">Learning Log</a> -
<a href="{% url 'learning_logs:topics' %}">Topics</a>

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_Django ⼊门_10

显⽰特定主题的⻚⾯

01. URL 模式
# 特定主题的详细⻚⾯
path('topics/<int:topic_id>/', views.topic, name='topic'),

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_django_11

02. 视图
def topic(request, topic_id):
    """显⽰单个主题及其所有的条⽬"""
    topic = Topic.objects.get(id=topic_id)
    entries = topic.entry_set.order_by('-date_added')
    context = {'topic': topic, 'entries': entries}
    return render(request, 'learning_logs/topic.html', context)

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_Django ⼊门_12

03. 模板
{% extends 'learning_logs/base.html' %}

{% block content %}

   <p>Topic: {{ topic.text }}</p>
   <p>Entries:</p>
    <ul>
       {% for entry in entries %}
           <li>
               <p>{{ entry.date_added|date:'M d, Y H:i' }}</p>
               <p>{{ entry.text|linebreaks }}</p>
           </li>
       {% empty %}
            <li>There are no entries for this topic yet.</li>
       {% endfor %}
    </ul>

{% endblock content %}

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_Web_13

04. 将显⽰所有主题的⻚⾯中的每个主题都设置为链接
 {% extends 'learning_logs/base.html' %}

 {% block content %}

    <p>Topic: {{ topic.text }}</p>
    <p>Entries:</p>
     <ul>
        {% for topic in topics %}
            <li>
               <a href="{% url 'learning_logs:topic' topic.id %}">
                   {{ topic.text }}</a>
            </li>
        {% empty %}
             <li>No topics have been added yet.</li>
        {% endfor %}

        {% for entry in entries %}
            <li>
                <p>{{ entry.date_added|date:'M d, Y H:i' }}</p>
                <p>{{ entry.text|linebreaks }}</p>
            </li>
        {% empty %}
            <li>There are no entries for this topic yet.</li>
        {% endfor %}
     </ul>

 {% endblock content %}

Python从入门到实践project Web 应⽤程序 Django ⼊门.2_html_14


标签:Web,logs,Python,topics,Django,topic,learning,entries,content
From: https://blog.51cto.com/u_16352455/8956247

相关文章

  • SciTech-Python-编译Python的C/C++扩展的setup.py
    https://github.com/google-deepmind/tree/setup.py"""Setupforpippackage."""importos,platform,sys,sysconfig,shutil,subprocess,setuptoolsfromsetuptools.commandimportbuild_exthere=os.path.dirname(os.path.abspath......
  • Python教程(17)——python模块是什么?python模块详解
    Python模块简介模块是一个包含了Python定义和语句的文件,可用于将功能组织成可重用和可维护的代码块。每个Python文件都可以作为一个模块,模块可以包含变量、函数、类或可执行代码。通过使用模块,我们可以将代码分离成逻辑单元,促进模块化编程。所以我们可以简单的理解为,一个py文件就......
  • Python3.12新增内容
    https://medium.com/techtofreedom/5-handy-python-3-12-new-features-that-improve-your-coding-experience-fe2d6e1f05b4类型系统,更方便的类型别名声明方式简便的类型别名声明我们可以直接如下定义类型别名Point=tuple[float,float]classPointTest: def__init__(s......
  • Python教程(16)——lambda表达式详解
    lambda函数介绍我们平时经常可以在Python的代码中看到一种lambda开头的这种表达式,如果没有学过Python的相关知识,可能会一脸懵逼,不清楚到底这个关键字是干嘛的,用来表示什么。实际上这个就是lambda函数。lambda函数是Python中一种特殊的匿名函数,但不仅仅只存在Python中,它允许我们......
  • Python教程(16)——lambda表达式详解
    lambda函数介绍我们平时经常可以在Python的代码中看到一种lambda开头的这种表达式,如果没有学过Python的相关知识,可能会一脸懵逼,不清楚到底这个关键字是干嘛的,用来表示什么。实际上这个就是lambda函数。lambda函数是Python中一种特殊的匿名函数,但不仅仅只存在Python中,它允许我们......
  • Python爬虫知识点(bs/find_all/正则表达式)
    格式输出 BeautifulSoup库  信息提取  正则表达式     ......
  • 哥斯拉又一个webshell利器
    哥斯拉是继菜刀、蚁剑、冰蝎之后的又一个webshell利器,这里就不过多介绍了。GitHub地址:https://github.com/BeichenDream/Godzilla很多一线师傅不太了解其中的加解密手法,无法进行解密,这篇文章介绍了解密的方式方法,主要补全了网上缺少的ASP流量分析、PHP解密脚本和C#解密脚本。运行......
  • Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
    学习基础知识掌握Go语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解Go基础知识的好起点是查阅Go官方文档文章链接:Go编程语言详解:用途、特性、与Python和C++的比较基本语法了解Go语言的基本语法,包括Go程序的执行方式、包引入、主函数等Go......
  • Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
    学习基础知识掌握Go语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解Go基础知识的好起点是查阅Go官方文档文章链接:Go编程语言详解:用途、特性、与Python和C++的比较基本语法了解Go语言的基本语法,包括Go程序的执行方式、包引入、主函数等Go......
  • Web3公开课-第一讲
    Web3公开课-第一讲什么是Web3?Web1:用户只能在Web1的网站上单纯的获取信息,不可以上传自己的数据,网站没有交互效果,只是一堆信息的聚合。Web2:用户在Web2的网站或应用上可以读/写/进行交互,数据(私人信息)存储在中心化的服务器(可能会遭受到他人的审查)(例如:twitter等)。Web3:可拥有,例如以......