Django 5 学习笔记 2024版

1. 官方中文文档

Django 文档 | Django 文档 | Django (djangoproject.com)

2. 第一个应用 博客

总目录

 

<1>依赖安装:

pip install django

<2> 创建 工程 myapp

django-admin startproject myapp
cd myapp

<3>创建 应用 app

> python manage.py startapp app 

<4> 配置模型生成数据库表 

配置数据库: myapp/settings.py

对应文件: app/models.py

python manage.py makemigrations 
python manage.py migrate

<5> 配置文件\路由\视图

<6> 配置 后台

主要文件: app/admin.py

生成管理员账号:

python manage.py createsuperuser

账号:admin

邮箱:admin@qq.com

密码:abc123

<7> 运行服务器

python manage.py runserverpython manage.py runserver 0.0.0.0:8080

<8> 美化 后台页面

 

pip install django-simpleui

myapp/setting.py 

INSTALLED_APPS = ['simpleui', # 注意这里'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',...     
]

3. 文件参考例:

app/templates/app/post_list.html

<!DOCTYPE html>
<html>
<head><title>Blog</title>
{% load static %}<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
</head>
<body><h1>博客</h1>{% for post in posts %}<div><h2><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h2><p>{{ post.content|truncatewords:30 }}</p><p>{{post.f_name}} 发布于 </p></div>{% endfor %}<img  class="bd-placeholder-img" width="200" height="250" src="{{ post.icon2.url }}" alt="" srcset="">
</body>
</html>

app/templates/app/post_detail.html

<!DOCTYPE html>
<html>
<head><title>{{ post.title }}</title>
</head>
<body><img src="{{ post.image.url}}" alt="" srcset=""><h1>{{ post.title }}</h1><p>{{ post.content }}</p><p>Published: {{ post.created_at }}</p>
</body>
</html>

app/admin.py

# from django.contrib import admin# Register your models here.
from django.contrib import admin
from .models import Post, pru ,Netsite@admin.register(Post)
class PostAdmin(admin.ModelAdmin):list_display = ('title', 'author','other','created_at', 'updated_at', 'publish_date')class PruAdmin(admin.ModelAdmin):list_display = ('title','p_name', 'P_jg','p_sl')
admin.site.register(pru, PruAdmin)admin.site.site_header='BPC管理后台'
admin.site.site_title='BPC管理后台'
admin.site.index_title='BPC管理后台'class NetAdmin(admin.ModelAdmin):list_display = ('title', 'content')admin.site.register(Netsite, NetAdmin) 

 

app/models.py

# from django.db import models# Create your models here.
from django.db import modelsclass Post(models.Model):title = models.CharField(max_length=200 , verbose_name="标题" )author = models.CharField(max_length=100, verbose_name="作者", default="匿名") # 添加作者字段other = models.CharField(max_length=100, verbose_name="另外", default="other") # 添加作者字段content = models.TextField()# f_name = models.CharField("客户姓名", max_length=30)created_at = models.DateTimeField(auto_now_add=True)updated_at = models.DateTimeField(auto_now=True)publish_date = models.DateField(null=True)icon = models.FileField(upload_to='blog\static\img', null=True)# icon2 = models.ImageField(upload_to='media/', null=True)icon2 = models.ImageField(default='bank.png', blank=True)class pru(models.Model):title = models.CharField(max_length=200 , verbose_name="标题", default="标题")p_name = models.CharField(max_length=200 , verbose_name="名字")P_jg = models.CharField(max_length=100, verbose_name="价格", default="20") # 添加作者字段p_sl = models.CharField(max_length=100, verbose_name="数量", default="1") # 添加作者字段content = models.TextField()    def __str__(self):return self.titleclass Netsite(models.Model):title = models.CharField(max_length=200 , verbose_name="标题", default="标题")content = models.TextField( verbose_name="内容", default="http://")

app/urls.py

from django.urls import path
from . import viewsurlpatterns = [path('', views.post_index, name='post_index'),path('', views.post_list, name='post_list'),path('post/<int:pk>/', views.post_detail, name='post_detail'),
]

app/views.py

# from django.shortcuts import render# Create your views here.
from django.shortcuts import render
from .models import Post, pru , Netsitedef post_index(request):posts = Post.objects.all()Netsites = Netsite.objects.all()return render(request, 'app/index.html', {'posts': posts, 'Netsites': Netsites})def post_list(request):posts = Post.objects.all()return render(request, 'app/post_list.html', {'posts': posts})def pru_list(request):prus = pru.objects.all()return render(request, 'app/post_list.html', {'prus': prus})def post_detail(request, pk):post = Post.objects.get(pk=pk)return render(request, 'app/post_detail.html', {'post': post})

myapp/settings.py

# Application definitionINSTALLED_APPS = ['simpleui', # 管理后台'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app',
]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]# Internationalization
# https://docs.djangoproject.com/en/5.1/topics/i18n/LANGUAGE_CODE = 'zh-hans'  # 中文,简体
TIME_ZONE = 'Asia/Shanghai'  # 中国标准时间# LANGUAGE_CODE = 'en-us'# TIME_ZONE = 'UTC'USE_I18N = TrueUSE_TZ = True# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.1/howto/static-files/STATIC_URL = 'static/'
STATIC_DIR = [os.path.join(BASE_DIR, 'static')]MEDIA_URL = 'media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')# Default primary key field type
# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-fieldDEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'# 隐藏右侧SimpleUI广告链接和使用分析
SIMPLEUI_HOME_INFO = False 
SIMPLEUI_ANALYSIS = False 

myapp/urls.py

from django.contrib import admin
from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import staticurlpatterns = [path('admin/', admin.site.urls),path('app/', include('app.urls')),path('', include('app.urls')),
] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144073.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【protobuf】ProtoBuf的学习与使用⸺C++

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 前言&#xff1a;之前我们学习了Linux与windows的protobuf安装&#xff0c;知道protobuf是做序列化操作的应用&#xff0c;今天我们来学习一下protobuf。 目录 ⼀、初识ProtoBuf 步骤1&#xff1a;创建.proto文件 步…

使用 HFD 加快 Hugging Face 模型和数据集的下载

Hugging Face 提供了丰富的预训练模型和数据集&#xff0c;而且使用 Hugging Face 提供的 from_pretrained() 方法可以轻松加载它们&#xff0c;但是&#xff0c;模型和数据集文件通常体积庞大&#xff0c;用默认方法下载起来非常花时间。 本文将指导你如何使用 HFD&#xff08…

安卓手机改ip地址改到其他市

在数字化时代&#xff0c;IP地址作为设备在网络上的唯一标识&#xff0c;其重要性不言而喻。有时&#xff0c;出于测试、学习或特定服务访问的需求&#xff0c;用户可能希望将安卓手机的IP地址修改为其他城市的地址。本文旨在探讨如何在安卓手机上修改IP地址至其他城市&#xf…

分布式事务学习笔记(五)微服务实现Seata TCC模式、TC服务器高可用异地容灾

文章目录 前言6 Seata TCC 模式6.1 实现原理6.2 优缺点6.3 空回滚和业务悬挂6.3.1 空回滚6.3.2 业务悬挂 6.4 微服务实现TCC模式6.4.1 思路分析6.4.2 声明TCC接口6.4.3 编写实现类6.4.4 Controller类调用TCC接口6.4.5 修改配置文件application.yml6.4.6 重启微服务并测试 7 TC服…

​​使用ENVI之大气校正(下)

再根据遥感影像的拍摄时间将Flight ate与Flight Time GMT (H:M:SS)填写&#xff0c;如要查询按如下方法 这里按照表中的内容修改 根据影像范围的经纬度与拍摄时间更改Atmospheric Model&#xff0c;更改完成后点击Multispectral Settings...在跳出的界面中选择GUI再点击Default…

轨迹规划——估计规划轨迹曲率代码实现

已经知道轨迹&#xff08;x&#xff0c;y&#xff0c;theta&#xff09;一系列点集合&#xff0c;根据之前一篇文章&#xff1a; Estimating the Trajectory Curvature Using Three Trajectory Points Output From Motion Planning 代码如下&#xff1a; #include<iostre…

「iOS」——单例模式

iOS学习 前言单例模式的概念单例模式的优缺点单例模式的两种模式懒汉模式饿汉模式单例模式的写法 总结 前言 在一开始学习OC的时候&#xff0c;我们初步接触过单例模式。在学习定时器与视图移动的控件中&#xff0c;我们初步意识到单例模式的重要性。对于我们需要保持的控件&a…

【StringUtils工具类】isEmpty 和 isBlank 的区别

isEmpty 和 isBlank 的区别 前言isEmpty系列StringUtils.isEmpty&#xff08;&#xff09;StringUtils.isNotEmpty&#xff08;&#xff09;StringUtils.isAnyEmpty&#xff08;&#xff09;StringUtils.isNoneEmpty&#xff08;&#xff09;如何插入一段漂亮的代码片 isBank系…

FastDFS架构和原理

FastDFS 项目地址&#xff1a;https://github.com/happyfish100FastDFS 主要功能包括&#xff1a;文件存储&#xff0c;同步和访问&#xff0c;基于高可用的负载均衡。FastDFS 非常适合基于文件服务的站点。FastDFS 有跟踪服务器&#xff08;Tracker Server&#xff09;、存储服…

【数据结构】排序算法---冒泡排序

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaCGo 结语 1. 定义 冒泡排序&#xff08;英语&#xff1a;Bubble sort&#xff09;是一种简单的排序算法。它重复地走访过要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的…

001、Git开发流程规范

前言 本篇不详细介绍 Git 的使用&#xff0c;仅介绍基于 Git 的开发分支流程规范。 简述 Git 管理中&#xff0c;最重要的一个点就在于分支的管理。在项目开发中&#xff0c;一般涉及到 Git 的相关分支有&#xff1a; master/main: 主分支&#xff0c;版本正式发布的代码都用…

硬件看门狗导致MCU启动时间慢

最近&#xff0c;在项目交付过程中&#xff0c;我们遇到了一个有趣的问题&#xff0c;与大家分享一下。 客户的需求是&#xff1a;在KL15电压上电后&#xff0c;MCU需要在200ms内发送出第一包CAN报文数据。然而&#xff0c;实际测试结果显示&#xff0c;软件需要360ms才能发送…

基于python+django+vue的美术馆预约系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

Facebook隐私设置指南:如何更好地保护个人信息

在数字化时代&#xff0c;隐私保护成为了每个互联网用户面临的重要课题。Facebook&#xff0c;作为全球最大的社交网络平台之一&#xff0c;拥有庞大的用户基础和丰富的个人数据。因此&#xff0c;了解和管理Facebook的隐私设置对保护个人信息至关重要。本文将为您提供一份详细…

git push出错Push cannot contain secrets

报错原因&#xff1a; 因为你的代码里面包含了github token明文信息&#xff0c;github担心你的token会泄漏&#xff0c;所以就不允许你推送这些内容。 解决办法&#xff1a; 需要先把代码里面的github token信息删除掉&#xff0c;并且删掉之前的历史提交&#xff0c;只要包…

【推荐100个unity插件之34】在unity中实现和Live2D虚拟人物的交互——Cubism SDK for Unity

最终效果 文章目录 最终效果前言例子中文官网Live2d模型获取下载Live2D Cubism SDK for Unity使用文档限制unity导入并使用Live2D模型1、将SDK载入到项目2、载入模型3、显示模型4、 播放动画 表情动作修改参数眼神跟随看向鼠标效果部位触摸效果摸头效果摸头闭眼效果做成桌宠参考…

Mistral AI 又又又开源了闭源企业级模型——Mistral-Small-Instruct-2409

就在不久前&#xff0c;Mistral 公司在开源了 Pixtral 12B 视觉多模态大模型之后&#xff0c;又开源了自家的企业级小型模型 Mistral-Small-Instruct-2409 &#xff08;22B&#xff09;&#xff0c;这是 Mistral AI 最新的企业级小型模型&#xff0c;是 Mistral Small v24.02 的…

无人机如何突破高海拔高寒飞行环境?

无人机在突破高海拔高寒飞行环境方面&#xff0c;需要解决一系列技术难题和挑战。以下是一些主要的技术手段和策略&#xff1a; 1. 无人机平台设计与优化 增强机体结构&#xff1a;采用轻质高强度的材料&#xff0c;如碳纤维、复合材料等&#xff0c;减轻机身重量&#xff0c…

HomeAssistant显示节假日

先看效果 步骤&#xff1a; 新建卡片时选择“Markdown 卡片”代码在文章最下方&#xff0c;当然你也可以自己修改 点击保存/完成 ### {% if now().hour > 6 and now().hour < 9 -%} 早上好&#xff0c; {%- elif now().hour > 9 and now().hour < 12 -%} 上午好…

ipython里如何用?快速查阅帮助

1、&#xff1f;用于查询函数帮助文档&#xff0c;??用于查询带源码的帮助文档 ?用于搜索内容&#xff0c;*作为通配符。