python web 框架Django学习笔记
2018年5月
python web 框架Django学习笔记
Django 架站的16堂课
MVC架构设计师大部分框架或大型程序项目中一种软件工程的架构模式,把程序或者项目分为三个主要组成部分,Model数据模型、View视图、Controller控制器。
命令及设置相关
-
创建数据库及中间文件,每次数据表有改动都要执行下面的两句
python manage.py makemigrations name
同步更新数据库内容
python manage.py migrate
-
生成项目及app
python django-admin startproject name
python manage.py startapp name
-
运行项目
pyhton manege.py runserver [IP及port]
默认为 127.0.0.1:8000 -
启动admin管理界面
python manage.py createsuperuser
输入username password
然后在 admin.py 中
from django.contrib import admin
from .models import yournameadmin.site.register(yourname)
自定义后台显示
class PostAdmin(admin.ModelAdmin):list_display=('aa','bb','cc') #要和数据库中字段一致ordering = ('-pub_time')
admin.site.register(yourname,PostAdmin)
- 加入static文件的方法
Django 架站的16堂课 70页
setting.py 中
STATIC_URL = '/static/'
STATICFILES_DIRS =[BASE_DIR+"/static"]
在html中引用方法
{% load staticfiles %} // 只需使用一次即可
<img src ="{% statci 'img/logo.png' %}">
模板相关
- template语言
- {% if 条件 %} … {% endif %}
- {% if 条件 %} … {% elif 条件 %} … {% endif %}
- {% if 条件 %} … {% elif 条件 %} … {% else %} … {% endif %}
- 继承与共享
共享使用方法:
{% include 'header.html' %}
继承使用方法:
{% extends 'base.html' %}
-
过滤器
在网页中显示摘要,或者指定日期格式等,可以使用过滤器 -
html 代码的表格绘制
{% for c in cars %}{% if forloop.first %} // 第一次循环
<table><tr><td>车厂</td><td>车款</td></tr>{% endif %}<tr bgcolor = "{% cycle '#eeeeee' '#cccccc'%}" // 循环颜色<td>{{ maker_name }}</td><td>{{ c }} </td></tr>{% if forloop.last %} // 最后一次循环
</table>{% endif %}
{% empty %} // 如果cars为空<h3> 车厂 <em>{{ maker_name }}</em>目前无库存</h3>
{% endfor %}
模型相关
- models 中选项
SIZES = ('Small','Medium','Large')size = models.CharField(max_length =1, choices = SIZES)
- 数据表以名字显示
def __str__(self): # python3return self.PackageNum
def __unicode__(self): # python2return self.PackageNum
注意python3和python2的不同。
在后台显示数据表的名字:
def Meta: # python3verbose_name = "什么什么表"ordering = ['name'] # 按 name 字段排序
-
外键
maker = models.ForeignKey(Marker,on_delete = models.CASCADE)
指当被引用对象被删除时,此引用对象也要一并删除。 -
admin 后台显示中文
在定义模型class时,加上verbose_name='中文'
-
model中允许一个字段不是必填项
blank = True
注意其与null = True
的区别,null为接收空字符 -
更新某项数据最好使用update而不是save方法
视图相关
-
view 中对数据库的查询相关操作
Django的view函数中,主要是找到数据项,把它放在某一变量中,对对其进行相关操作,all()/save()等 -
url传递参数
在url中,定义规则为url(r'^list/([0-9a-zA-Z]+)/$',disp_details)
会将括号中的参数取出来传递到后面disp_details
函数中
def disp_detail(request,sku)...
Django 开发宝典
王友钊等编著
书中笔记摘抄
2018年6月
-
HttpResponse('[http_user_agent]:%s,[remote_addr]:%s') %s (http_user_agent,remote_addr)
在view中,返回数据的一种形式,%s为占位符。(120页) -
{% ifequal %}
标签比较两个值,可以是变量、字符串、整数和小数。
{% ifequal section 'sitenews' %}<h1>Site News</h1>
{% else %}<h1>No News Here</h1>
{% endifequal %}
- 注释
{# This is a connent #}
多行注释
{% comment %}
This is
a multi-line
comment
{% endcomment %}
- views函数的一个捷径
常规方法:
def current_datetime(request):now = datetime.datetime.now()t = get_template('current_datetime.html')html = t.render({'current_date':now})return HttpResponse(html)
便捷方法:
在 django.shortcuts 模块中的 render_to_response() 函数
from django.shortcuts import render_to_response
import datetimedef current_datetime(request):now = datetime.datetime.now()return render_to_response('current_datetime.html',{'current_date':now})
- 数据更新
不好的代码:
p = Publisher.objects.get(name='Apress')
p.name = 'Apress Publishing'
p.save()
这样更新了name,所有列都进行了更新,不明智。使用update()方法
Publisher.objects.filter(id=52).update(name='Apress Publishing')
相关文章:

python web 框架Django学习笔记
2018年5月 python web 框架Django学习笔记 Django 架站的16堂课 MVC架构设计师大部分框架或大型程序项目中一种软件工程的架构模式,把程序或者项目分为三个主要组成部分,Model数据模型、View视图、Controller控制器。 命令及设置相关 创建数据库及中间…...
ubuntn20 搭建 redmine
安装数据库 更新包列表:sudo apt update 安装MySQL服务器:sudo apt install mysql-server 运行安全性脚本:MySQL服务器安装后,运行以下命令以加固安装:sudo mysql_secure_installation 这个脚本将引导您完成几个安全选…...

每日五道java面试题之java基础篇(三)
第一题. switch 是否能作⽤在 byte/long/String 上? Java5 以前 switch(expr)中,expr 只能是 byte、short、char、int。从 Java 5 开始,Java 中引⼊了枚举类型, expr 也可以是 enum 类型。从 Java 7 开始,expr 还可以…...

如何升级 gpt4?快速升级至ChatGPT Plus指南,爆火的“ChatGPT”到底是什么?
提到 ChatGPT。想必大家都有所耳闻。自从 2022 年上线以来,就受到国内外狂热的追捧和青睐,上线2个月,月活突破1个亿!!! 而且还在持续上涨中。因为有很多人都在使用 ChatGPT 。无论是各大头条、抖音等 App、…...

【实习】深信服防火墙网络安全生产实习
一、实习概况 1.1实习目的 1.掌握防火墙规则的作用2.掌握代理上网功能的作用3.掌握端口映射功能的作用 1.2实习任务 1.防火墙的WEB控制台 2.需要在防火墙上配置dnat …...

怎么把视频音乐提取成mp3?分享详细工具和方法!
在数字媒体时代,音乐已经成为我们生活中不可或缺的一部分。有时候,我们会在社交媒体、视频分享网站或在线视频平台上看到一些非常喜欢的视频音乐,想要将其保存为MP3格式以便随时随地聆听。那么,如何从视频中提取音乐并转换为MP3格…...

代码随想录算法训练营第44天 | 完全背包理论基础 518.零钱兑换II 377.组合总和 Ⅳ
完全背包理论基础 完全背包与01背包只相差在物品是无限取用的。因此和01背包相比第二层对背包容量的遍历应该是正序的,而且正因为这个正序,使得在纯完全背包问题中,背包容量和物品的遍历是可以倒过来的。 #include <bits/stdc.h> usi…...
深度解析与推荐:主流Web前端开发框架
一、引言 在信息化社会中,Web前端开发的重要性日益凸显。作为连接用户与后台服务的关键桥梁,前端界面不仅直接影响用户体验,更是企业品牌形象、产品价值传递的重要载体。随着互联网技术的飞速发展,用户对于网站和应用的交互性、响应速度以及视觉效果等方面的要求越来越高,…...

【React】如何使antd禁用状态的表单输入组件响应点击事件?
最近遇到一个需求,需要在<Input.textarea>组件中,设置属性disabled为true,使textarea响应点击事件,但直接绑定onClick并不会在禁用状态下被响应。 解决方法1 之后尝试了很多方法,比如设置csspointer-events:no…...
Apache Flink
前言 最近在学习室内融合定位服务架构,业务架构上,涵盖了数据采集、处理、状态管理、实时计算和告警等多个方面,但有些问题:这套系统中包含了大量的有状态计算,目前是通过自设计内存对象进行管理,并利用Re…...

SpringMVC速成(一)
文章目录 SpringMVC速成(一)1.SpringMVC概述2.SpringMVC入门案例2.1 需求分析2.2 案例制作步骤1:创建Maven项目步骤2:补全目录结构步骤3:导入jar包步骤4:创建配置类步骤5:创建Controller类步骤6:使用配置类替换web.xml步骤7:配置Tomcat环境步骤8:启动运行…...

通过nginx学习linux进程名的修改
目录 1. 缘起2. 背景知识3. 源码分析3.1 准备工作3.2 设置进程名字 1. 缘起 在运行nginx的时候,用ps查看nginx的进程信息,可能的输出如下: root 42169 3105 0 16:51 ? 00:00:00 nginx: master process ./objs/nginx root …...
【PyTorch】实现迁移学习框架DANN
文章目录 前言代码实现1、导入数据库关于torch.manual_seed(1)2、参数设置3、数据导入4、定义训练函数4.1 nn.CrossEntropyLoss()4.2 .detach()4.3 .size VS .shape4.4 .to(DEVICE)4.5 .max()4.6 optimizer.zero_grad()4.7 len(data...

thinkphp6入门(18)-- 中间件中除了handle函数,还可以有其它函数吗
在ThinkPHP 6的中间件中,除了 handle 方法外,还可以定义其他方法。这些额外的方法可以用于执行中间件中的不同逻辑,但是只有 handle 方法是中间件的入口点,其他方法则需要在 handle 方法中手动调用。 (图片来自https://www.cnblog…...

Java stream 流的基本使用
Java stream 的基本使用 package com.zhong.streamdemo.usestreamdemo;import jdk.jfr.DataAmount; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.ArrayList; import java.util.Comparator; import java.util.Li…...

C++面向对象 Part 2
文章目录 类六个默认存在的成员函数构造函数:析构函数:拷贝构造函数:拷贝构造详解及细节: 赋值运算符重载;取地址及const取地址操作符重载const修饰的含义: 类六个默认存在的成员函数 构造函数 析构函数 拷贝构造函数 赋值运算…...

海外云手机的核心优势
随着5G时代的到来,云计算产业正处于高速发展的时期,为海外云手机的问世创造了一个可信任的背景。在资源有限且需求不断增加的时代,将硬件设备集中在云端,降低个人用户的硬件消耗,同时提升性能,这一点单单就…...

CDN相关和HTTP代理
CDN相关和HTTP代理 参考: 《透视 HTTP 协议》——chrono 把这两个放在一起是因为容易搞混,我一开始总以为CDN就是HTTP代理,但是看了极客时间里透视HTTP协议的讲解,感觉又不仅于此,于是专门写下来。 先说结论…...

STM32的ADC电压采集
时间记录:2024/2/9 一、ADC相关知识点 (1)STM32的ADC时钟不要超过14MHz,不然结果的准确率将下降 (2)ADC分为规则组和注入组,规则组相当于正常运行的程序,注入组相当于中断可以打断…...

基于麻雀优化算法优化XGBoost参数的优化控制策略
目录 一、背景 二、算法流程图 三、附录 一、背景 为提高极端梯度提升(Extreme Gradient Boosting, XGBoost)集成算法在时间预测、信贷风险预测、工件参数预测、故障诊断预测等方面中的准确性,研究者提出了一种改进的麻雀算法(…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...

Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...