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 yourname

admin.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):   # python3
    return self.PackageNum
def __unicode__(self):    # python2
    return self.PackageNum

注意python3和python2的不同。

在后台显示数据表的名字:

def Meta:    # python3
    verbose_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 datetime

def 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')

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Launch4j将jar包转成.exe可执行文件

Launch4j官网:Launch4j - Cross-platform Java executable wrapper 然后点击上面按钮 随便写个文件名

分享66个相册特效,总有一款适合您

分享66个相册特效&#xff0c;总有一款适合您 66个相册特效下载链接&#xff1a;https://pan.baidu.com/s/1jqctaho4sL_iGSNExhWB6A?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不…

FastDFS安装并整合Openresty

FastDFS安装并整合Openresty 一、安装环境准备【CentOS7.9】二、FastDFS--tracker安装2.1.下载fastdfs2.2.FastDFS安装环境2.3.安装FastDFS依赖libevent库2.4.安装libfastcommon2.5.安装 libserverframe 网络框架2.6.tracker编译安装2.7.安装之后文件目录介绍2.8.错误处理2.9.配…

Android SystemConfig相关

SystemConfig在哪里初始化 它声明在PackageManagerService类的静态方法main()中。在该方法中间定义Injector类对象时&#xff0c;作为它的构造参数。它是调用的SystemConfig.getInstance()实现初始化&#xff0c;之后能通过Injector类对象的getSystemConfig()得到SystemConfig类…

Python贝尔多项式

文章目录 Bell数和Bell多项式第二类Bell多项式 Bell数和Bell多项式 Bell&#xff0c;即所有包含 n n n个对象的有限集合的子集数之和&#xff0c;可通过递推式进行定义 B n ∑ k 0 n − 1 ( n − 1 k ) B k , B 0 1 B_n\sum^{n-1}_{k0}\begin{pmatrix} n-1\\k \end{pmatrix…

Select 选择器 el-option 回显错误 value

离谱 回显的内容不是 label 而是 value 的值 返回官方看说明&#xff1a; v-model的值为当前被选中的el-option的 value 属性值 value / v-model 绑定值有3种类型 boolean / string / number 根据自身代码猜测是&#xff1a;tableData.bookId 与 item.id 类型不一致导致 &…

LabVIEW伺服阀性能参数测试

LabVIEW伺服阀性能参数测试 伺服阀作为电液伺服系统中的核心元件&#xff0c;其性能参数的准确测试对保证系统整体性能至关重要。开发了一种基于LabVIEW软件开发的伺服阀性能参数测试系统&#xff0c;提高测试的自动化程度和精确性&#xff0c;同时降低操作复杂度和成本。 传…

python + numpy test

1. 2. What is the correct syntax to output the type of a variable or object in Python? Syntax of the Python type() functionThe type() function 3. upper() 全大写 lower() 全小写 4. 接下来是Numpy部分 1. What is a correct syntax to check the number of di…

一条 SQL 查询语句是如何执行的

MySQL 的基本架构示意图 大体来说&#xff0c;MySQL 可以分为 Server 层和存储引擎层两部分 Server 层包括连接器、查询缓存、分析器、优化器、执行器等&#xff0c;涵盖 MySQL 的大多数核心服务功能&#xff0c;以及所有的内置函数&#xff08;如日期、时间、数学和加密函数等…

YOLOv8算法改进【NO.101】引入最新的损失函数Focaler-IoU

前 言 YOLO算法改进系列出到这&#xff0c;很多朋友问改进如何选择是最佳的&#xff0c;下面我就根据个人多年的写作发文章以及指导发文章的经验来看&#xff0c;按照优先顺序进行排序讲解YOLO算法改进方法的顺序选择。具体有需求的同学可以私信我沟通&#xff1a; 第一…

VitePress-12-markdown中使用vue的语法

前言 VitePress 中&#xff0c;markdown文档最终都会转换成为 html文件&#xff0c;我们在访问的时候&#xff0c;也是直接访问的 xxx.html 文件。而且&#xff0c;markdown文档会被作为 [vue单文件] 进行处理&#xff0c;因此&#xff0c;我们我们可以在文档中使用 vue 语法&…

C#,雷卡曼数(Recamán Number)的算法与源代码

1 雷卡曼数&#xff08;Recamn Number&#xff09; 雷卡曼数&#xff08;Recamn Number&#xff09;&#xff0c;即Recaman序列被定义如下&#xff1a; (1) a[0]0; (2) 如果a[m-1]-m>0并且这个值在序列中不存在&#xff0c;则a[m]a[m-1]-m; (3) 否则a[m]a[m-1]m; 雷卡曼序…

c#安全-nativeAOT

文章目录 前记AOT测试反序列化Emit 前记 JIT\AOT JIT编译器&#xff08;Just-in-Time Complier&#xff09;,AOT编译器&#xff08;Ahead-of-Time Complier&#xff09;。 AOT测试 首先编译一段普通代码 using System; using System.Runtime.InteropServices; namespace co…

【Linux系统学习】5.Linux实用操作 下

7.虚拟机配置固定IP 7.1 为什么需要固定IP 当前我们虚拟机的Linux操作系统&#xff0c;其IP地址是通过DHCP服务获取的。 DHCP&#xff1a;动态获取IP地址&#xff0c;即每次重启设备后都会获取一次&#xff0c;可能导致IP地址频繁变更 原因1&#xff1a;办公电脑IP地址变化无所…

嵌入式学习之Linux入门篇笔记——12,Linux文件系统概念

配套视频学习链接&#xff1a;http://【【北京迅为】嵌入式学习之Linux入门篇】 https://www.bilibili.com/video/BV1M7411m7wT/?p4&share_sourcecopy_web&vd_sourcea0ef2c4953d33a9260910aaea45eaec8 1.什么是文件系统&#xff1f; 操作系统中负责管理和存储文件系统…

飞天使-linux操作的一些技巧与知识点9-zabbix6.0 容器之纸飞机告警设置

文章目录 zabbix 告警纸飞机方式webhook 方式 zabbix 告警纸飞机方式 第一种方式参考 https://blog.csdn.net/yetugeng/article/details/99682432bash-4.4$ cat telegram.sh #!/bin/bashMSG$1TOKEN"61231432278:AAsdfsdfsdfsdHUxBwPSINc2kfOGhVik" CHAT_ID-41dsdde…

|Python新手小白低级教程|第十九章:函数(1)

文章目录 前言一、概说二、方法def简介1.示例&#xff1a;使用def关键字制作功能函数——找最大最小2.代码剖析示例代码Part 1示例代码Part 2示例代码Part 3练习1.1制作函数 三、灵活使用函数1.制作一种函数&#xff0c;函数名和格式为even_num(a,b)&#xff0c;输入a&#xff…

VSTO打包Word插件WPS也支持

启动AdvancedInstallerPortable.exe打包软件 选择“加载项” 选择“office加载项”之后点“创建项目” 四、输入自已的插件名和公司名 任选一种包类型 五、选择包的保存位置 勾选“vsto office加载项” 六、选择要打包的项目debug文件夹 选择相应版本 配置相应环境 选择语言 添…

《雾锁王国》服务器怎么搭建,阿里云一键部署雾锁王国新手教程

上次讲了怎么搭建幻兽帕鲁服务器&#xff0c;今天讲讲如何搭建雾锁王国服务器&#xff0c;其实方法也非常简单&#xff0c;跟幻兽帕鲁一样&#xff0c;都是可以通过一键部署的方式来搭建的。 下面将会讲两种搭建《雾锁王国》服务器的方式&#xff0c;一种是你没有买过服务器&a…

苹果推出新型开源AI图像编辑模型“MGIE”;可汗学院辅助学习的GPT,Prompt 质量非常高

&#x1f989; AI新闻 &#x1f680; 苹果推出新型开源AI图像编辑模型“MGIE” 摘要&#xff1a;苹果公司最近发布了一个名为“MGIE”的开源人工智能模型&#xff0c;旨在通过自然语言指令对图片进行编辑。MGIE&#xff0c;全称MLLM-Guided Image Editing&#xff0c;依赖于多…