基于Django的Python应用——学习笔记

这篇具有很好参考价值的文章主要介绍了基于Django的Python应用——学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:Python3.11

          Django5.0.1

一、建立项目

创建虚拟环境

为项目新建一个目录,将其命名为 learning_log ,再在终端中切换到这个目录,并创建一个虚拟环境。
python -m venv ll_env
项目列表生成了这样的一个文件夹
基于Django的Python应用——学习笔记,Python,学习,笔记

然后激活虚拟环境

ll_env\Scripts\activate

控制台前方出现高亮即为成功

基于Django的Python应用——学习笔记,Python,学习,笔记

创建并激活虚拟环境后,就可安装Django了:

pip install Django

新建项目

在依然处于活动的虚拟环境的情况下( ll_env 包含在括号内),执行如下命令来新建一个项目:
django-admin.py startproject learning_log

此时,出现一个名叫learning_log的文件夹。

基于Django的Python应用——学习笔记,Python,学习,笔记

创建数据库

python manage.py migrate
此时Django 又创建了一个文件 ——db.sqlite3

基于Django的Python应用——学习笔记,Python,学习,笔记

下面来核实 Django 是否正确地创建了项目。为此,可执行命令 runserver 
python manage.py runserver

点击链接,出现这个页面即为成功。

基于Django的Python应用——学习笔记,Python,学习,笔记

二、创建应用程序

当前,在前面打开的终端窗口中应该还运行着 runserver 。请再打开一个终端窗口(或标签页),并切换到 manage.py 所在的目录。激活该虚拟环境,再执行命令 startapp
python manage.py startapp learning_logs
将看到其中新增了一个文件夹 learning_logs
基于Django的Python应用——学习笔记,Python,学习,笔记

定义模型

打开learning_logs/models.py建立两个模型

基于Django的Python应用——学习笔记,Python,学习,笔记

from django.db import models


# Create your models here.
class Topic(models.Model):
    # """用户学习的主题"""
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        # """返回模型的字符串表示"""
        return self.text

class Entry(models.Model):
    """学到的有关某个主题的具体知识"""
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE)

    text = models.TextField()

    date_added = models.DateTimeField(auto_now_add=True)


    class Meta:
        verbose_name_plural = 'entries'

    def __str__(self):
        """返回模型的字符串表示"""
        return self.text[:50] + "..."

激活模型

打开settings.py

基于Django的Python应用——学习笔记,Python,学习,笔记

请将 INSTALLED_APPS 修改成下面这样

基于Django的Python应用——学习笔记,Python,学习,笔记

# 我的应用程序
    'learning_logs',
接下来,需要让 Django 修改数据库,使其能够存储与模型 Topic 相关的信息。为此,在终端窗口中执行下面的命令:
python manage.py makemigrations learning_logs
输出表明 Django 创建了一个名为 0001_initial.py 的迁移文件,这个文件 将在数据库中为模型Topic 创建一个表。
下面来应用这种迁移,让 Django 替我们修改数据库:
python manage.py migrate
每当需要修改 学习笔记 管理的数据时,都采取如下三个步骤:
修改models.py;
对learning_logs 调用makemigrations ;
让Django迁移项目。

创建超级用户

在控制台输入:

python manage.py createsuperuser

基于Django的Python应用——学习笔记,Python,学习,笔记

根据提示输入信息

注册模型

我们创建应用程序 learning_logs 时, Django models.py 所在的目录中创建了一个名为 admin.py 的文件:
基于Django的Python应用——学习笔记,Python,学习,笔记
from django.contrib import admin

# Register your models here.
from learning_logs.models import Topic
admin.site.register(Topic)

from learning_logs.models import Entry
admin.site.register(Entry)
现在,使用超级用户账户访问管理网站:访问 http://localhost:8000/admin/ ,并输入你刚创建的超级用户的用户名和密码
基于Django的Python应用——学习笔记,Python,学习,笔记
基于Django的Python应用——学习笔记,Python,学习,笔记

添加主题

基于Django的Python应用——学习笔记,Python,学习,笔记

书中提供的信息如下:

The opening is thefirst part ofthe game, roughly thefirst tenmoves or so. In the opening, it'sa good ideato do threethings— bring out your bishopsand knights, try to controlthecenter ofthe
board,and castle your king. (国际象棋的第一个阶段是开局,大致是前 10 步左右。在开局阶段,最好做三件事情:将象和马调出来;努力控制棋盘的中间区域;用车将王
护住。)
Ofcourse, thesearejust guidelines. It will beimportant to learnwhen to followthese guidelinesand when to disregard thesesuggestions. (当然,这些只是指导原则。学习什么情况下遵
守这些原则、什么情况下不用遵守很重要。)
再来创建一个国际象棋条目,并创建一个攀岩条目,以提供一些初始数据。下面是第二个国际象棋条目。
In the opening phase ofthe game, it's important to bring out your bishopsand knights. These piecesare powerfuland maneuverableenough to play asignificant rolein the beginningmoves ofa
game. (在国际象棋的开局阶段,将象和马调出来很重要。这些棋子威力大,机动性强,在开局阶段扮演着重要角色。)
下面是第一个攀岩条目:
One ofthe most importantconcepts in climbing is to keep your weight on your feetas much as possible. There'sa myth thatclimberscan hang all day on theirarms. In reality, good climbers have
practiced specific ways of keeping their weight over their feet whenever possible. (最重要的攀岩概念之一是尽可能让双脚承受体重。有谬误认为攀岩者能依靠手臂的力量坚持一
整天。实际上,优秀的攀岩者都经过专门训练,能够尽可能让双脚承受体重。)

三、创建网页

映射url

打开项目主文件夹 learning_log 中的文件urls.py,我们需要包含 learning_logs URL
基于Django的Python应用——学习笔记,Python,学习,笔记
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('learning_logs.urls', namespace='learning_logs')),
    # url(r'', include('learning_logs.urls', namespace='learning_logs')), # Django2.0使用djang.urls.path
]
现在我们需要在文件夹 learning_logs 中创建另一个 urls.py 文件:
基于Django的Python应用——学习笔记,Python,学习,笔记
"""定义learning_logs的URL模式"""
from django.urls import path
#从当前的urls.py模块所在的文件夹中导入视图
from . import views
#变量urlpatterns是一个列表,包含可在应用程序learning_logs中请求的网页
app_name = 'learning_logs'
urlpatterns = [
	#主页
	#第一个是正则表达式,r让Python将接下来的字符串视为原始字符串,引号正则表达式始于和终于何处
	#第二个实参指定了要调用的视图函数
	#第三个实参将这个URL模式的名称指定为index
	path(r'',views.index,name='index'),
	# 显示所有的主题
	path(r'topics/', views.topics, name='topics'),
	# 特定主题的详细页面
	path(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),
	]

编写视图

learning_logs 中的文件 views.py 是你执行命令 python manage.py startapp 时自动生成的
基于Django的Python应用——学习笔记,Python,学习,笔记
from django.shortcuts import render
from .models import Topic

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

def topics(request):
    """显示所有的主题"""
    topics = Topic.objects.order_by('date_added')
    context = {'topics': topics}
    return render(request, 'learning_logs/topics.html', context)
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)

编写模板

按顺序新建文件夹以及四个页面

基于Django的Python应用——学习笔记,Python,学习,笔记

base.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>
    <a href="{% url 'learning_logs:index' %}">Learning Log</a>-
    <a href="{% url 'learning_logs:topics' %}">Topics</a>
</p>
{% block content %}{% endblock content %}
</body>
</html>

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{% extends "learning_logs/base.html" %}
{% block content %}
<p>Learning Log helps you keep track of your learning, for any topic you're
learning about.</p>
{% endblock content %}
</body>
</html>

topic.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{% extends "learning_logs/base.html" %}
{% block content %}
<p>Topic: {{ topic }}</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 %}

{% endblock content %}
</ul>
</body>
</html>

topics.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Topics</title>
</head>
<body>
{% extends "learning_logs/base.html" %}
{% block content %}

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

{% endblock content %}
</body>
</html>

四、效果

基于Django的Python应用——学习笔记,Python,学习,笔记文章来源地址https://www.toymoban.com/news/detail-831881.html

点击Topics
基于Django的Python应用——学习笔记,Python,学习,笔记
点击Chess
基于Django的Python应用——学习笔记,Python,学习,笔记

到了这里,关于基于Django的Python应用——学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python学习笔记_进阶篇(三)_django知识(二)

    本章内容 Django model django默认支持sqlite,mysql, oracle,postgresql数据库。 1 sqlite django默认使用sqlite的数据库,默认自带sqlite的数据库驱动 引擎名称:django.db.backends.sqlite3 2mysql 引擎名称:django.db.backends.mysql 1、配置文件中sqlite 2、配置文件中mysql 注:由于Django内部连接MySQL时使用的

    2024年02月12日
    浏览(41)
  • Python学习笔记_进阶篇(四)_django知识(三)

    本章内容: Django 发送邮件 Django cookie Django session Django CSRF 我们常常会用到一些发送邮件的功能,比如有人提交了应聘的表单,可以向HR的邮箱发邮件,这样,HR不看网站就可以知道有人在网站上提交了应聘信息。今天我们尝试用django发送邮件做尝试 1、配置相关参数settings 往

    2024年02月11日
    浏览(46)
  • Python学习笔记_进阶篇(二)_django知识(一)

    本章简介: Django 简介 Django 基本配置 Django url Django view Django 模板语言 Django Form Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于

    2024年02月12日
    浏览(46)
  • Python学习笔记-Django框架基础,APP,数据模型,后台管理,路由

    Django框架是Python的常用web框架,遵循 MVC 设计模式的框架,采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的

    2024年02月16日
    浏览(41)
  • Python学习笔记_实战篇(二)_django多条件筛选搜索

    多条件搜索在很多网站上都有用到,比如京东,淘宝,51cto,等等好多购物教育网站上都有,当然网上也有很多开源的比楼主写的好的多了去了,仅供参考,哈哈 先来一张效果图吧,不然幻想不出来是什么样的,前端样式很low,毕竟主要是说后台的嘛,前端为了简单测试就简

    2024年02月12日
    浏览(46)
  • 基于python+django基于大数据的学习资源推送系统的设计与实现

    摘  要 本文首先实现了学习资源推送管理技术的发展,随后依照传统的软件开发流程,最先为系统挑选适用的语言和软件开发平台,依据需求分析开展控制模块制作和数据库查询构造设计,依据系统整体功能模块的设计,制作系统的功能模块图、流程表和E-R图。其次进行设计

    2024年03月26日
    浏览(74)
  • 基于python+Django深度学习的音乐推荐方法研究系统设计与实现

    摘 要 数字化时代带动着整个社会的信息化发展,随着数字媒体的不断发展,现在通多媒体数字产品的内容越来越丰富,传播影响力越来越强,以音乐为例,现在的音乐文化多样、音乐资源也异常的丰富,在这种大数据的环境下,人们要想找到想要的音乐类型、找到心里所想

    2024年02月09日
    浏览(48)
  • 《Python深度学习基于Pytorch》学习笔记

    有需要这本书的pdf资源的可以联系我~ 这本书不是偏向于非常详细的教你很多函数怎么用,更多的是交个基本使用,主要是后面的深度学习相关的内容。 1.Numpy提供两种基本的对象:ndarray(n维数组对象)(用于储存多维数据)和ufunc(通用函数对象,用于处理不同的数据)。

    2024年02月09日
    浏览(41)
  • STM32基于CubeIDE和HAL库 基础入门学习笔记:功能驱动与应用

    文章目录: 一:LED与按键驱动程序 main.c 1.闪灯  led.h led.c  2.按键控制LED亮灭  key.h  key.c 二:蜂鸣器与继电器驱动程序 main.c 1.蜂鸣器 buzzer.h buzzer.c delay.h delay.c 2.继电器 relay.h relay.c 三:USART串口收发测试程序(超级终端) main.c retarget.h retarget.c usart.h usart.c 四:ADC与DMA驱动程序

    2024年02月13日
    浏览(35)
  • [python] 基于Gradio可视化部署机器学习应用

    Gradio是一个开源的Python库,用于构建机器学习和数据科学演示应用。有了Gradio,你可以围绕你的机器学习模型或数据科学工作流程快速创建一个简单漂亮的用户界面。Gradio适用于以下情况: 为客户/合作者/用户/学生演示你的机器学习模型。 通过自动共享链接快速部署你的模

    2023年04月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包