当前位置: 首页 > news >正文

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架构设计师大部分框架或大型程序项目中一种软件工程的架构模式&#xff0c;把程序或者项目分为三个主要组成部分&#xff0c;Model数据模型、View视图、Controller控制器。 命令及设置相关 创建数据库及中间…...

ubuntn20 搭建 redmine

安装数据库 更新包列表&#xff1a;sudo apt update 安装MySQL服务器&#xff1a;sudo apt install mysql-server 运行安全性脚本&#xff1a;MySQL服务器安装后&#xff0c;运行以下命令以加固安装&#xff1a;sudo mysql_secure_installation 这个脚本将引导您完成几个安全选…...

每日五道java面试题之java基础篇(三)

第一题. switch 是否能作⽤在 byte/long/String 上&#xff1f; Java5 以前 switch(expr)中&#xff0c;expr 只能是 byte、short、char、int。从 Java 5 开始&#xff0c;Java 中引⼊了枚举类型&#xff0c; expr 也可以是 enum 类型。从 Java 7 开始&#xff0c;expr 还可以…...

如何升级 gpt4?快速升级至ChatGPT Plus指南,爆火的“ChatGPT”到底是什么?

提到 ChatGPT。想必大家都有所耳闻。自从 2022 年上线以来&#xff0c;就受到国内外狂热的追捧和青睐&#xff0c;上线2个月&#xff0c;月活突破1个亿&#xff01;&#xff01;&#xff01; 而且还在持续上涨中。因为有很多人都在使用 ChatGPT 。无论是各大头条、抖音等 App、…...

【实习】深信服防火墙网络安全生产实习

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

怎么把视频音乐提取成mp3?分享详细工具和方法!

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

代码随想录算法训练营第44天 | 完全背包理论基础 518.零钱兑换II 377.组合总和 Ⅳ

完全背包理论基础 完全背包与01背包只相差在物品是无限取用的。因此和01背包相比第二层对背包容量的遍历应该是正序的&#xff0c;而且正因为这个正序&#xff0c;使得在纯完全背包问题中&#xff0c;背包容量和物品的遍历是可以倒过来的。 #include <bits/stdc.h> usi…...

深度解析与推荐:主流Web前端开发框架

一、引言 在信息化社会中,Web前端开发的重要性日益凸显。作为连接用户与后台服务的关键桥梁,前端界面不仅直接影响用户体验,更是企业品牌形象、产品价值传递的重要载体。随着互联网技术的飞速发展,用户对于网站和应用的交互性、响应速度以及视觉效果等方面的要求越来越高,…...

【React】如何使antd禁用状态的表单输入组件响应点击事件?

最近遇到一个需求&#xff0c;需要在<Input.textarea>组件中&#xff0c;设置属性disabled为true&#xff0c;使textarea响应点击事件&#xff0c;但直接绑定onClick并不会在禁用状态下被响应。 解决方法1 之后尝试了很多方法&#xff0c;比如设置csspointer-events:no…...

Apache Flink

前言 最近在学习室内融合定位服务架构&#xff0c;业务架构上&#xff0c;涵盖了数据采集、处理、状态管理、实时计算和告警等多个方面&#xff0c;但有些问题&#xff1a;这套系统中包含了大量的有状态计算&#xff0c;目前是通过自设计内存对象进行管理&#xff0c;并利用Re…...

SpringMVC速成(一)

文章目录 SpringMVC速成&#xff08;一&#xff09;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的时候&#xff0c;用ps查看nginx的进程信息&#xff0c;可能的输出如下&#xff1a; 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的中间件中&#xff0c;除了 handle 方法外&#xff0c;还可以定义其他方法。这些额外的方法可以用于执行中间件中的不同逻辑&#xff0c;但是只有 handle 方法是中间件的入口点&#xff0c;其他方法则需要在 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

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

海外云手机的核心优势

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

CDN相关和HTTP代理

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

STM32的ADC电压采集

时间记录&#xff1a;2024/2/9 一、ADC相关知识点 &#xff08;1&#xff09;STM32的ADC时钟不要超过14MHz&#xff0c;不然结果的准确率将下降 &#xff08;2&#xff09;ADC分为规则组和注入组&#xff0c;规则组相当于正常运行的程序&#xff0c;注入组相当于中断可以打断…...

基于麻雀优化算法优化XGBoost参数的优化控制策略

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

5分钟搞定OpenCV摄像头实时监控(附Jupyter避坑指南)

5分钟搞定OpenCV摄像头实时监控&#xff08;附Jupyter避坑指南&#xff09; 在计算机视觉领域&#xff0c;实时摄像头监控是最基础也最实用的功能之一。无论是安防监控、人脸识别还是简单的视频采集&#xff0c;OpenCV都提供了简洁高效的接口。但对于Python初学者和Jupyter Not…...

ostringstream清空缓存的正确姿势:str()与clear()的深度解析

1. 为什么ostringstream清空缓存这么让人困惑&#xff1f; 第一次用ostringstream的时候&#xff0c;我也被它坑过。记得当时写了个日志记录功能&#xff0c;反复往同一个ostringstream对象里写入内容&#xff0c;结果发现每次输出的日志都越积越长。我本能地调用了clear()&…...

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

从混乱到清晰&#xff1a;用QJsonObject重构你的Qt网络API数据解析层&#xff08;避坑指南&#xff09; 在Qt开发中&#xff0c;与后端RESTful API交互是常见需求&#xff0c;但面对复杂、嵌套的JSON响应数据时&#xff0c;很多开发者容易陷入"面条代码"的泥潭。本文…...

上篇:那个隔墙听声的侦探——AI中的隐马尔可夫模型到底是什么,以及它为什么被发明出来

想象一下这样的场景&#xff1a;你被关在一间屋子里&#xff0c;隔壁房间有一个人在扔硬币。但你看不到那个房间&#xff0c;也看不到那个人&#xff0c;更看不到硬币。你唯一能做的&#xff0c;就是竖起耳朵听——每隔一段时间&#xff0c;你能听到一个声音&#xff1a;“叮”…...

Anthropic:AI 编程从单打独斗到团队协作的生产关系升级

【导语&#xff1a;在 AI 时代&#xff0c;编程不再是少数人的特权。Anthropic 让 Claude 独自完成项目&#xff0c;从单智能体到多智能体结构&#xff0c;实现了从生成代码到交付成果的跨越&#xff0c;带来了生产关系的升级。】Claude 单枪匹马难交付&#xff0c;多智能体团队…...

告别ViT的笨重:手把手教你用SegFormer在Cityscapes数据集上实现高效语义分割

告别ViT的笨重&#xff1a;手把手教你用SegFormer在Cityscapes数据集上实现高效语义分割 在自动驾驶、遥感影像分析等计算机视觉应用中&#xff0c;语义分割技术扮演着关键角色。传统基于卷积神经网络&#xff08;CNN&#xff09;的方法虽然取得了显著进展&#xff0c;但面临着…...

Ubuntu20.04下ROS2与MoveIt2环境配置全攻略:从虚拟环境到避坑指南

Ubuntu 20.04下ROS2与MoveIt2环境配置实战指南 机器人操作系统&#xff08;ROS&#xff09;作为现代机器人开发的基石&#xff0c;其第二代的ROS2凭借更强大的实时性和分布式架构&#xff0c;正在成为工业界和学术界的新宠。而MoveIt2作为ROS2中的运动规划框架&#xff0c;为机…...

pg_dump备份报错:Only syssso can access this table

文章目录环境症状问题原因解决方案环境 系统平台&#xff1a;N/A 版本&#xff1a;4.5.8 症状 使用pg_dump对数据库进行备份时报错&#xff1a; pg_dump:error:query failed:ERROR: Only syssso can access this table. pg_dump:error:query was: SELECT label, provider, …...

Node.js版本管理神器NVM:从安装到实战的保姆级教程(Mac版)

Node.js版本管理神器NVM&#xff1a;从安装到实战的保姆级教程&#xff08;Mac版&#xff09; 作为一名长期在Mac环境下工作的前端开发者&#xff0c;我深刻体会到Node.js版本管理的重要性。不同项目可能依赖不同版本的Node.js&#xff0c;而手动切换版本不仅麻烦还容易出错。N…...

NaViL-9B多模态能力详解:从API调用到温度参数优化的完整指南

NaViL-9B多模态能力详解&#xff1a;从API调用到温度参数优化的完整指南 1. 平台概述与核心能力 NaViL-9B是一款原生多模态大语言模型&#xff0c;由专业研究机构开发。它同时具备文本理解和图像分析能力&#xff0c;能够处理纯文本问答和图片内容理解任务。这种双模态能力使…...