- 博客(47)
- 收藏
- 关注
原创 declarative() got an unexpected keyword argument ‘property‘
declarative() got an unexpected keyword argument 'property'
2023-02-12 22:19:29 1377 1
原创 Django视图高级
常用请求get和postrequire_http_methos装饰器from django.views.decorators.http import require_http_methods@require_http_methods(['GET', 'POST'])def index(request): return HttpResponse('index')require_GET装饰器from django.views.decorators.http import requir
2021-07-29 10:46:43 198
原创 Django根据已有的数据库来生成模型
日常开发中,我们有时会碰到数据库已经存在,而需要我们去生成模型的情况。这种情况下,我们需要:Django中配置好数据库,确保连接得上这个已经存在的数据库在cmd中运行命令,模型会生成在同一个文件中python manage.py inspectdb > models.py修改模型3.1 修改模型名,根据需求修改模型的名称3.2 将不同的表放进其所属的app中3.3 处理好表之间的外键关系(主要针对跨app的表,如果外键在同一个模型文件中,则可以跳过该步骤),在外键前加上app
2021-07-23 13:20:38 548
原创 Django数据库——迁移命令
文章目录makemigrationsmigrate(常用)拓展makemigrations后面指定app_name:只针对这个app生成迁移脚本(也可以指定多个)python manage.py makemigrations app_name—name:指定迁移脚本的名称python manage.py makemigrations --name book_migration—empty:生成一个空的迁移脚本,可以自定义(不常用)python manage.py makemig
2021-07-23 13:00:52 4115
原创 Django数据库——objects
文章目录objectsQuerySet方法objects我们之前的增删改查操作等都会写类似如下的语句(xxx代表着filter,get等)book = Book.objects.xxx那么究竟这个objects是什么呢,为什么做操作前都需要加上这个objects首先我们来打印一下这个objects# views.pydef objects(request): book = Book.objects print(book) print(type(book)) return HttpRe
2021-07-23 11:40:58 2925 3
原创 Django数据库——聚合函数
文章目录聚合函数AvgCountMax和MinSum拓展F表达式Q表达式聚合函数在Django中使用聚合函数前,需要提及aggregate和annotateaggregate:返回聚合函数后的字段和值annotate:在原有模型字段的基础上添加一个新的字段,当使用聚合函数后,会使用当前模型的主键进行分组(group_by)我们通过下面三个聚合函数具体了解一下aggregate和annotate的区别AvgAvg是用来求平均值的,Avg里的是字段名需求一:求书的平均价格from djan
2021-07-19 11:35:26 889
原创 Django数据库——外键与查询条件
前提:如果你用的是php_study,你需要在设置的mysql的配置文件里更改默认的数据库引擎,设置为InnoDB,InnoDB支持数据库的外键约束。设置外键通过models.ForeignKey来设置外键,他有两个必须要传的参数to: 外键连接的表on_delete: 外键删除后,相关数据的操作方式from django.db import modelsclass Article(models.Model): name = models.CharField(max_length=2
2021-07-16 11:42:26 2993
原创 Django orm模型常用字段
常用字段下面只讲实际中比较常用的字段,其他字段可以参考Django官方文档:https://docs.djangoproject.com/en/3.2/ref/models/fields/AutoFieldAutoField一般用在主键,要设置primary_key。这个字段有自动增长的特点# models# AutoField一般用在主键id = models.AutoField(primary_key=True)CharFieldCharField在数据库层面是varchar字段,需要
2021-07-13 13:20:48 163
原创 Django操作数据库——增删改查
做数据库操作前,需要将视图创建好,这里就不再赘述数据库的操作写在views.py中,首先要导入创建好的ORM模型# views.pyfrom django.http import HttpResponsefrom .models import Book增加数据# views.pydef add_book(request): book = Book(name='xxx', author='xxx', price='xxx') book.save() return HttpResponse
2021-07-11 11:30:07 837
原创 Django连接数据库
Django连接数据库文章目录Django连接数据库准备工作安装MySQL驱动数据库配置安装MySQL(不作详细介绍)SQLyog安装环境配置数据库迁移准备工作安装MySQL驱动Django和MySQL是两个独立的东西,需要有一个“桥梁”去连接它们,而MySQL驱动就是这个“桥梁”。MySQL的驱动有如下这些:MySQL-python:C语言编写,效率高,但只支持python2mysqlclient:MySQL-python的一个分支,支持python3pymysql:python编写,
2021-07-11 10:43:11 325
原创 Django模板使用
Django模板使用文章目录Django模板使用模板常用标签url标签模板过滤器模板结构优化和模板继承模板结构优化模板继承加载静态文件模板常用标签模板使用的标签都是严格的开头和结尾,如:{% if xxx %}{% endif %}# 此处仅展示部分代码示例# 传递的参数, 后面的标签都是用这个传递的参数context = { 'animals': ['Lion', 'Tiger', 'Monkey', 'Mouse'], 'label': <a href="https://w
2021-07-09 15:02:43 78
原创 Django模板简介
Django模板简介模板介绍Django自带有DTL模板(Django Template Language),DTL能够和Django完美兼容。相对于jinja2:Flask用jinja2作为框架的模板系统,Django也可以用jinja2模板相对于html:DTL模板和jinja2模板能够被Django编译,可以传递参数,实现数据动态化;展示在客户端模板使用模板路径配置全局新建一个templates文件夹(与项目同名文件夹同级),添加模板文件在配置文件夹(项目同名文件夹)的s
2021-07-03 11:19:34 226
原创 Django 视图
Django视图在Django初识体验中,我将视图和路由配置都写在了一个urls文件中,这只是Django的初体验为了方便才这样写的。事实上,Django的视图一般写在每个app的views.py中;但如果将配置都写在配置文件夹(与项目同名的文件夹)中的urls中。无疑不方便我们管理每个app(模块)的视图。因此,我们需要在每个app中新建一个urls文件夹。include函数上面我们说到我们需要在每一个app中创建一个urls文件,但我们的路由配置都在配置文件夹的urls中(即我们访问路由时,只能
2021-07-01 13:19:16 212
原创 Django初识体验
Django初识体验什么是DjangoDjango是一个由Python编写的一个开放源代码的Web应用框架,也是目前Python下使用最多的一个Web框架。Django的MVT模式:Model(模型)+ View(视图)+ Template(模板);和MVC本质上是一样的,都是为了组件间保持松耦合关系。Mode:编写程序应有的功能,负责业务对象与数据库的映射(ORM)View:负责业务逻辑Template:负责页面的展示虚拟环境虚拟环境是为了将不同的项目分隔开,防止不同项目之间因版本和库
2021-06-26 15:28:28 247
原创 win10删除右键菜单多余项
win10删除右键菜单多余项关于这个问题,我自己在网上也查找过许多博客,但发现似乎不能解决我的问题问题我的问题是删除右键菜单的多余项(如下图),是删除红色框框的东西,框内之前有一个我已经卸载的应用软件,但不知道是什么原因还保留在我的右键菜单中。有点看不下去了,就想删掉它而网上大多数方法都是删除新建下级目录的选项(如下图),如果是解决这类问题,网上有很多博客,可自行查阅解决方法win+R,然后输入regedit(如下图),打开注册表编辑器展开HKEY_CLASSES_ROOT
2021-04-07 15:34:28 25503 6
原创 python 单例模式
Python 单例模式单例模式顾名思义,就是只有一个实例,即该模式是保证一个类只有一个实例单例模式的实现class A(object): def __new__(cls, *args, **kwargs): if not hasattr(cls, _instance): cls._instance = super().__new__(cls, *args, **kwargs) return cls._instancea = A()print(id(a))b = A()
2021-01-29 23:58:23 82
原创 Flask连接数据库
Flask连接数据库这里我所使用的数据库软件是MySQL,安装的方式是通过官网下载安装,进行配置的话网上有教程,如果不想太麻烦,可以尝试傻瓜式配置:PhpStudy小皮面板(https://www.xp.cn/)一、连接数据库首先配置文件HOSTNAME = '127.0.0.1'DATABASE = '你的数据库名称'PORT = 3306USERNAME = 'root'PASSWORD = '密码'DB_URL = 'mysql+pymysql://{}:{}@{}:{}/{}'
2021-01-26 09:36:28 953
原创 flask之 子域名
文章目录子域名用蓝图实现子域名子域名例如有一个网站的网址是:xxx.com,那么cms.xxx.com就是一个子域名,cms可以随意定义。(这里仅通俗地介绍,详细可查百度)用蓝图实现子域名在flask中要实现子域名,通常使用蓝图蓝图实现子域名:1、创建蓝图from flask import Blueprintcms_bp = Blueprint('cms', __name__, subdomain='cms')# subdomain是子域名的意思@cms_bp.route('/')
2020-11-03 11:19:13 693
原创 flask之 蓝图
文章目录蓝图简介蓝图的使用寻找模板文件文件查找方式寻找静态文件文件查找方式寻找静态和模板文件的差异点url_for蓝图简介之前我们写的url和视图都是在一个文件中,这对于小项目来说是没有什么问题,但如果项目大了,url和视图有很多,如果都放在一个文件中就不太方便管理了。因此我们将他们按照不同的功能进行模块化分离。而蓝图能够帮助我们实现这个需求。蓝图的使用1、编写蓝图新创建一个蓝图文件(py文件),在该蓝图文件中编写蓝图写蓝图需要导入Blueprint模块from flask import Bl
2020-11-03 10:26:56 371
原创 flask之 类视图
文章目录类视图标准类视图app.add_url_rule()标准类视图的使用类视图类视图和视图函数的区别在于,类视图可以继承,但类视图写完之后需要进行注册。标准类视图标准类视图继承自flask.views.View标准类视图的注册:app.add_url_rule(rule,endpoint,view_func)-标准类视图必须重写dispatch_request方法 ,不然会报错,返回NotImplementError类型错误app.add_url_rule()三个常用的参数:r
2020-10-23 10:02:16 1276
原创 flask之 静态文件配置
静态文件配置静态文件配置是如css,js,图片文件等的配置。在flask中配置css等静态文件需要用到 url_for() 这个函数需要配置的静态文件都需要放到项目文件下的static文件夹,因为flask中默认的文件夹名称就是static配置css文件<link rel="stylesheet" href="{{url_for('static',filename='css/index.css')}}"/><!-- fliename的文件路径是相对于static的路径 --&g
2020-10-21 13:41:00 1759
原创 flask之 模板继承
模板继承模板的继承和面向对象的继承类似,模板的继承试将经常重复的代码抽离出来,放进父模板中,父模板还可以通过block开一个接口,子模板在继承父模板之后可以再次使用block来重写内容extends语句 {% extends '父模板路径' %} block语句block必须要取名(name),name是子模板在开口过程识别是哪个接口的唯一标志 {% block name %} {% endblock %}父模板父模板的开口:标题内容(title标签)页面内容(h2标签)页面
2020-10-20 16:30:13 471
原创 flask之 include和set语句
include和set语句文章目录include和set语句include语句include语句格式set语句set语句格式with语句格式include语句flask中的include语句可以将一个模板的代码复制到另一个模板中,以实现代码的复用include语句格式{% include 'HTML/samepart/header.html' %}<!-- include后面加一个文件路径(相对于templates) -->复用代码1(header.html)<ul>
2020-10-20 12:53:05 286
原创 flask之 宏和import
宏和import文章目录宏和import宏宏的基本格式宏的导入importfrom ... import ...宏宏和python里的函数差不多,可以传递参数,但是宏没有返回值。宏和函数一样,可以将一些经常用的代码写进宏里,然后在不同的地方进行调用宏的基本格式 {% macro input(name, value='', type='text') %} <!-- 定义宏 --> <input name="{{ name }}", value="{{ valu
2020-10-19 19:12:08 199
原创 flask之 控制语句
控制语句文章目录控制语句ifforflaskh中的控制语句都是放在{% … %}中,并且以{% end… %}结尾,常用的控制语句有 if 和 for。ifflask中if条件控制语句的基本格式如下: {% if username == 'Sleet'%} <p>该用户名是:Sleet</p> {% elif username == 'Snow' %} <p>该用户名是:Snow</p> {% e
2020-10-19 16:39:11 406
原创 flask之 自定义模板过滤器
flask自定义模板过滤器文章目录flask自定义模板过滤器@app.template_filter('过滤器名字')@app.template_filter(‘过滤器名字’)flask 中用@app.template_filter(‘name’)来自定义名字为name的过滤器。然后在该视图函数下定义函数来指定该过滤器的功能即可如下面的案例为返回博文发表时间(如在朋友圈,微博等)形如’ xxx小时之前 ’在py文件中自定义过滤器我定义的过滤器名称为handle_time;功能是根据发布时间和当
2020-10-19 15:20:21 437
原创 flask之 jinja2模板内置过滤器
jinja2模板内置过滤器文章目录jinja2模板内置过滤器过滤器参考代码py文件html文件过滤器过滤器是通过管道符号(|)实用的,比如{{ age|abs }}是返回age的绝对值。过滤器类似函数,将参数传递给过滤器,再由过滤器根据其相应的功能返回相应的值去渲染网页。jinja2有许多内置的过滤器,下面一 一进行介绍:abs(value):返回value的绝对值default(value,default_value):设置默认值,如果value没有定义,则返回默认的default_va
2020-10-17 11:18:25 1153 1
原创 flask之 url和视图
url和视图文章目录url和视图一、url与函数的映射1.1 @app.route()1.2 约束类型二、构造url2.1 url_for2.2 指定url后面的斜杠('/')2.2 指定HTTP的方法2.3 重定向2.4 Response响应2.4.1 Response()2.4.2 make_response()一、url与函数的映射1.1 @app.route()route是一个视图函数,通过该装饰器装饰的函数,可以将括号后的url映射到装饰的函数,使url和函数产生关系。当访问该url时,可
2020-10-14 11:24:46 230
原创 flask简介
Flask简介,url和视图文章目录Flask简介,url和视图一、虚拟环境1.1 什么是虚拟环境1.2 虚拟环境的安装二、Flask简介三、设置debug模式四、配置文件五、url和视图1.1 @app.route()1.2 约束类型一、虚拟环境1.1 什么是虚拟环境虚拟环境是区别于系统环境的一个概念,通过虚拟环境,我们可以防止多个项目之间的冲突。比如说,我在一个虚拟环境中使用一个版本的模块,而在另一个虚拟环境使用不同版本的同一模块,这样这两个模块就不会产生冲突。1.2 虚拟环境的安装配置系
2020-10-12 15:50:30 1840
原创 Python文件操作
Python文件操作文章目录Python文件操作文件文件的打开open()文件的关闭close()with... as...:文件的读取read()readline()readlines()文件的写入write()文件在Python中,我们通过编写代码来对文件进行增删减改的操作文件一般分为两种:纯文本文件(使用utf-8编码编写的文件)二进制文件,比如图像,音频等文件操作的一般步骤:文件的打开文件的读取与写入文件的关闭文件的打开open()open(file,‘文件打开
2020-09-23 11:01:40 66
原创 异常
异常文章目录异常异常的简介异常处理处理异常的代码异常的传播异常传播的案例异常的简介我们在运行程序的过程中,有时候程序会报错,比如说,除数不能为0,索引值不存在,不同数据类型相加错误等。我们称这些在程序运行时出现的错误为异常异常处理当程序中出现异常时,代码会终止运行,异常后面的代码都不会执行。所以我们希望能够通过编写代码来处理异常,使程序能够在遇到异常后能够正常继续执行,异常后面的代码也能够继续执行处理异常的代码try: 代码块(容易出错的代码快)except(错误类型): 代码块(t
2020-09-22 15:04:30 98
原创 Python高级语法
Python高级语法文章目录Python高级语法推导式列表推导式字典推导式集合表达式生成器生成器出现的背景生成器的创建生成器内元素的获取迭代器可迭代对象的判断可迭代对象,生成器和迭代器的关系推导式列表推导式语法:[变量/表达式 for 变量 in 可迭代对象 (if 条件表达式)],括号内的内容表示可选lst = [x*3 for x in range(10)]lst = [x*3 for x in range(10) if x%2==0]print(lst)字典推导式语法:{键表达
2020-09-18 15:56:36 183
原创 模块
模块文章目录模块模块的简介模块的创建__ name __模块的使用模块的简介模块化是将一个完整的程序分成一块块小的模块程序是将这些一个个小的模块组合起来,搭建完整的程序模块的优点方便开发方便维护模块可以复用模块的创建在Python中,后缀名为.py的文件就可以作为一个模块__ name __使用__ name __方法可以获取模块名.如果该方法在当前文件调用,返回的结果是‘__ main __’如果该方法是在另外一个文件被调用的,返回的结果是当前文件的名称我们在编写好
2020-09-18 14:52:05 104
原创 面向对象
面向对象文章目录面向对象面向对象的简介对象面向对象类的快速入门类的定义self参数面向对象的简介对象我的另外一个blog有详细的讲什么是对象,还有可变对象和不可变对象,这里不多做赘述,详情可以点击链接查看可变对象与不可变对象面向对象提到面向对象,不得不提提面向过程,可以说面向对象是由面向过程发展而来的面向对象和面向过程这个也是我的blog,有讲到面向过程和面向对象这里我再说一说面向过程和面向对象首先都是编程的思想面向过程关注的是解决问题的步骤,通过将问题的解决分为一个一个的步骤来进
2020-09-10 13:34:35 226
原创 函数(3)
函数(3)文章目录函数(3)高阶函数匿名函数闭包装饰器的引入装饰器的使用高阶函数判断是否是高阶函数的两个条件是否以函数作为参数是否以函数作为返回值# 判断一个函数是高阶函数的两个条件# 1. 这个函数以函数作为参数# 2. 这个函数的返回值是函数对象# lst = [1,2,3,4,5,6,7,8,9,10]## def fn1(i):# if i % 2 == 0:# return True# return False## def f
2020-09-09 17:40:45 133
原创 函数(2)
函数(2)文章目录函数(2)不定长参数*形参和**形参的相同点不同点:参数的解包函数的返回值文档字符串help()help()和文档字符串的搭配使用函数的作用域全局作用域函数作用域命名空间locals()递归函数递归递归函数的例子不定长参数函数中,在定义形参的时候可以在形参的前面加上*或者***形参和**形参的相同点都能够接收多个传递过来的实参在函数中只能定义一个不同点:*形参:保存的数据类型是元组# def fn(*args):# r = 0# print
2020-09-05 22:35:54 461
原创 可变对象和不可变对象
可变对象和不可变对象对象对象里面存放了三个数据id(标识)type(类型)value(值)可变对象可变对象的内容是可变的# 列表是一个可变对象# lst = [1,2,3]# print(id(lst))# lst[0] = 10# print(id(lst))# lst = [4,5,6]# print(id(lst))# 2579630785792# 2579630785792# 2579630788864# 未修改前的列表和修改后的列表的内存地址都是一样的,
2020-09-04 16:15:01 158
原创 函数(1)
函数函数的概念函数是一个对象函数用来保存一段可执行的代码,可以在有需要时多次被执行语法def 函数名(形参,形参): 代码块注意函数名的命名方式必须符合标识符命名方式(由字母,下划线,数字组成,不能以数字开头)函数名表示的是函数对象,函数名() 表示 调用函数形参和实参形参形式参数;在定义函数时可以在括号里添加不定量的形参。指定了形参相当于在函数里声明了内部变量,但这不是赋值形参可以设置默认值,当在调用函数传递参数时,如果指定了实参,则该默认值不生效;如果没有指定实参
2020-09-04 15:56:50 120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人