- 博客(63)
- 收藏
- 关注
原创 Django的‘通用视图TemplateView’
其中base.html文件同样位于项目templates目录下。book.jpg文件位于项目的static\images目录下。使用通用视图的好处是:如果有一个html需要展示,不需要写view视图函数,直接写好url即可。3、打开网页http://localhost:8000/home/,即可查看。2、在项目templates目录下,新建home.html文件。1、编辑项目urls.py文件。
2024-06-13 11:44:13
385
原创 Django分页
3、向项目的根templates中添加paginator.html模板,用于在需要分页的地方include。2、给原来的罗列信息函数,添加分页功能,即按照页码,只返回部分信息。注意在写href时,问号和page之间没有空格。4、在原来的罗列信息页面中,引入分页模板。1、在视图函数文件中引入‘分页器’
2024-06-06 14:16:14
421
原创 Django按照文章ID更新文章
在提交时,JavaScript函数中,使用var id = {{ article_id }}语句得到文章ID。2、article_list.html文件中遍历articles,获得某个article的ID,并使用以下语句为‘编辑图标’设置超链接。3、包含参数的url的写法如下。注意这里的article_id必须就是视图函数redit_article中使用的形参,如果不一致,会报错。如果是Get请求,就使用获得的ID得到article的信息,传递到redit_article.html页面中,渲染该页面。
2024-06-06 11:12:20
519
原创 Django按照文章ID删除文章
2、在html部分,代表删除的图标,被点击时,调用javascript中的del_article函数,这个函数包含参数article.id。view函数渲染这个html文件时,传递了articles变量,article是遍历articles后获得的,要获得article的各个属性,使用‘.’方法。3、在javascript部分,articleId获得article.id的值,并将其提交给服务器。4、在视图部分,使用字典的键article_id,获得传递的‘文章ID’,并执行删除操作。
2024-06-06 10:58:44
272
原创 Django数据库查询操作
对于查询返回的QuerySet结果,默认是按照数据模型类中定义的字段排序的,如果要重新排序,可以使用order_by()方法。order_by()的参数中可以写多个字段名称,即按照字段前后顺序分别作为排序的“主关键词”和“次关键词”。括号里面的是查询条件,可以设置一个以上的查询条件,中间用‘,’分开。这里查询出username中以“laoshi”这个字符串结尾的对象。除filter()能够实现根据条件查询外,还有exclude()过滤不到结果时:返回空。查询不到结果时:报错。
2024-05-23 11:53:14
435
原创 Django使用AJAX向服务器发起请求
AJAX(Asynchronous JavaScript and XML)是一种用于创建交互式网页应用程序的技术,它允许在不重新加载整个页面的情况下向服务器发送和接收数据。通过 AJAX,网页可以异步地向服务器发起请求并在后台进行处理,然后在不刷新页面的情况下更新页面的部分内容。:AJAX 的核心是 JavaScript,它负责在客户端(浏览器)发起请求、处理响应,并更新页面的内容。:XHR 是在 JavaScript 中用于向服务器发起 HTTP 请求和接收响应的对象。
2024-05-20 20:21:09
476
原创 PyCharm设置——用于调试虚拟环境中的django程序
使用Pycharm新建了一个项目。项目目录:C:\Users\grace\PycharmProjects\learning_log在该路径下安装虚拟环境ll_env,并在虚拟环境下安装Django。为了调试该Django需要对PyCharm进行设置。
2024-05-20 19:19:52
1228
原创 Django提交表单出错&提示错误
使用ArticleColumnForm表单,向数据库提交内容,内容包括column。如果同一用户提交的column重复,则提示表单出错,表单提交失败后,重新渲染表单提交html页面,其中提示错误信息。只有在form的valid检查通过后,才进行页面的重定向,否则重新渲染add_column.html页面。渲染是使用的form不是空表,而是刚才提交的,包含错误信息的form。添加__init__方法,初始化表单时,包含提交表单的用户信息。添加clean_column方法,检查column是否重复。
2024-05-17 20:22:36
251
原创 Django用户信息中的:选择、上传、显示图片
点击choose file按钮,弹出文件选择对话框,选择图片cat.jpg后,该图片显示在图片显示区,点击upload file按钮,该图片url保存到数据库userinfo的photo字段,内容是photos/cat.jpg。.imageBox确定文件显示区的大小,.imageBox img确定当要显示的图片与图片显示区大小不同时,以何种方式填充图片显示区,这里采用的是不改变宽高比,适应图片显示区。3、修改用户信息编辑页面的html文件,添加图片显示区和两个按钮,分别执行图片选择、图片上传功能。
2024-05-16 15:42:46
476
原创 Django用户登录后的‘重定向’
注意,此时页面虽然跳转到了登录url,但是其中附加了一个next变量。该变量后面的内容表明在登录完成后希望能够自动跳转的位置。在urls.py文件中定义,处理该url的view函数为views.py文件中的myself。这段代码是 Django 模板语言的代码,用于在模板中根据条件渲染不同的 HTML 表单。表明,只有在用户登录的情况下才能执行。为了实现自动跳转,需要修改登录页面的html文件,内容如下。参数的登录表单,用于在登录后重定向到指定的地址;不存在或为空,则生成一个普通的登录表单。
2024-05-09 11:03:36
394
原创 Django数据模型类(Model)字段属性类型
DateField、DateTimeField:用于保存时间,有一个常用参数auto_now_add,如果auto_now_add=True,那么当数据模型实例被保存时,当前时间将自动被存储,而不需要为该字段进行赋值。· TextField:与CharField一样,区别在于保存的字符串长度是无限的(严格说应该受制于数据库程序和硬件系统),通常用于保存较大文本。类django.db.models中的每个属性,对应数据库中的一个字段,所以属性类型就是数据库的字段类型。
2024-05-04 13:01:12
330
原创 Django响应‘表单请求’过程
(1)用户通过自己的浏览器(客户端)第一次向服务器发出含有表单页面的请求,Django会创建一个未绑定数据的表单实例(例如form = LoginForm(), form实例就是未绑定实例),即空表单,然后反馈到前端页面,等待用户填写内容。(2)用户在客户端填写了表单内容之后,将其提交给服务器,在Django的视图中接收数据(例如form = LoginForm(request.POST)),然后验证表单数据(form.is_valid())。结束之后,本次表单提交过程完毕。
2024-05-02 10:19:37
596
1
原创 Django加载静态文件出错‘staticfiles‘ is not a registered tag library.
在html文件中输入{% load staticfiles %},提示错误信息:'staticfiles' is not a registered tag library.模块在 Django 1.7 版本中被弃用,取而代之的是。在 Django 中,如果要加载静态文件,应该使用。这样就可以正常加载静态文件了。
2024-04-29 09:22:53
603
原创 Django框架静态文件位置(默认&自定义)
修改项目learning_log的settings.py文件。在原有的STATIC_URL内容下添加STATICFILES_DIRS内容。
2024-04-26 12:30:04
389
原创 Django框架模板位置(默认&自定义)
修改项目learning_log的settings.py文件。],},},如果自定义的模板路径为:.\learning_log\templates,需要做如下修改],},},通过修改‘DIRS’确定新的模板目录,通过将‘APP_DIRS’改为False,关闭Django按默认方式寻找模板文件。注意,在修改‘DIRS’使用了os.path.join用来生成路径,所以需要在settings.py文件中引入os,即:import os。
2024-04-26 10:59:28
518
原创 Django框架网站开发-知识点
根据模型类,生成数据库迁移文件(python manage.py makemigrations),执行数据库迁移操作(python manage.py migrate),从而在数据库中生成对应的表,表的名称是:应用名_模型名。1)可移植性强,网站更改使用的数据库类型,只需在settings.py文件中更新数据库配置,然后迁移数据库,而不需要对ORM进行任何修改。ORM:Object Relational Mapping 对象关系映射,是Django封装的数据模型层,实现对数据库的操作。
2024-04-24 09:06:51
317
原创 django项目中的manage.py
查看具体命令信息,以startapp为例:python manage.py help startapp。项目根目录下的manage.py文件,是对django-admin.py的简单封装。查看manage.py中的命令:python manage.py help。
2024-04-17 12:36:40
309
原创 使用Git进行版本控制
提交后使用命令git status查看状态,显示位于master分支,working tree clean,这是每次提交项目的可行状态时都希望看到的消息。如果两次提交之间,对现有文件的修改使用git commit -a提交,添加新文件需要git add .对hello_git.py文件进行修改,再运行git status命令时,发现有没有提交的修改。4、检出上次提交的版本,使用命令git checkout .撤销提交后的修改。如果提交记录混乱,可以在检出需要的版本之后,删除git仓库,并重建仓库。
2024-04-16 09:36:45
504
原创 Python 从0开始 一步步基于Django创建项目(13)将数据关联到用户
8、修改C:\D\Python\Python310\study\snap_gram\city_infos路径下的views.py文件,修改edit_entry函数。10、修改C:\D\Python\Python310\study\snap_gram\city_infos路径下的views.py文件,修改new_entry函数。9、修改C:\D\Python\Python310\study\snap_gram\city_infos路径下的views.py文件,修改new_city函数。将新主题关联到用户。
2024-03-28 09:08:08
2397
原创 Python 从0开始 一步步基于Django创建项目(12)使用装饰器login_required()限制对页面的访问
3、为了实现重定向,修改city_infos的setting.py文件。该文件位于项目根目录:C:\D\Python\Python310\study\snap_gram\snap_gram。实施方法:在city_infos的views.py文件中,引入装饰器,并在所有视图函数前应用装饰器。为了防止此类情况,需要在views.py文件除index函数外的,所有函数前加装装饰器。除‘主页’和‘注册’页之外的所有页面,都只有在用户登录后才能访问。1、使用import引入装饰器。2、在视图函数前使用装饰器。
2024-03-28 07:11:54
709
原创 Python 从0开始 一步步基于Django创建项目(11)注册新用户
该函数中使用了UserCreationForm表单类,以及login()方法。需要再文件中import这两项内容。编写URL对应的视图函数register。添加‘注册新用户’URL。添加‘注册新用户’链接。
2024-03-28 06:39:43
1013
原创 Python 从0开始 一步步基于Django创建项目(10)用户登录和注销
在这一步中,html文件是我们自定义的注销页面,所以不能放在C:\D\Python\Python310\study\snap_gram\users\templates\registration路径下。3)新建C:\D\Python\Python310\study\snap_gram\users\templates\users路径下的logged_out.html文件。1)修改C:\D\Python\Python310\study\snap_gram\users路径下的urls.py文件。
2024-03-28 06:15:07
922
原创 Python 从0开始 一步步基于Django创建项目(9)删除条目
城市删除成功后,不在出现在城市列表页面,同时通过级联删除的方式,删除了与该城市关联的所有条目信息。点击删除后,跳转至确认删除页面,执行删除或取消。在城市列表页面,每个城市名称后,添加删除链接。
2024-03-27 09:12:43
462
原创 Python 从0开始 一步步基于Django创建项目(8)使用表单编辑既有条目
如果是GET方法,或者提交数据未通过检查,则根据Entry、City、EntryForm实例信息,生成context,并用context渲染endit_entry.html.在new_entry.html中使用的是city.id,因为city的id是entry的外键,通过这个id知道该条目应该隶属于那个city。在endit_entry.html中使用的是entry.id,通过id知道修改的是哪个条目即可。因为是对既有数据进行修改,就不需要创建新的数据类,即不需要创建新的‘表单类’。
2024-03-27 08:00:15
685
原创 Python 从0开始 一步步基于Django创建项目(7)简易网站中的表单
让用户输入,并提交信息的网页中,包含表单。也就是说,表单是用户编辑页面中的一个组成部分,其余的部分还可以包括文本、链接、按钮等。在之前的项目实现中,要修改数据库中的内容,需要使用Admin site,用管理员登录。在本文中,将在页面上,由用户对数据库内容进行修改,也就是用户提交表单,表单中包含要修改的数据。本文实现功能包括:1、新建‘城市’2、新建特定城市的‘信息’具体实施如下。
2024-03-25 18:46:14
720
原创 Python 从0开始 一步步基于Django创建项目(6)实现一个简易网站
该‘city_id’就是urls.py文件中,path('cities/<int:city_id>/',views.city,name='city')语句中的<int:city_id>。模板标签{% url 'city_infos:index'%}生成一个URL,该URL与在city_infos/urls.py中定义的名为'index'的URL模式匹配。在为每个city生成的url链接中,加入了city.id信息,该信息将传递给views文件中的city函数,用于提取关于城市的具体信息。
2024-03-25 07:21:35
1306
原创 Python 从0开始 一步步基于Django创建项目(5)注册&删除Admin site管理员账户
退出shell时,先按下ctrl+z,然后‘回车’。启动Django shell执行删除。
2024-03-23 18:13:22
172
原创 Python 从0开始 一步步基于Django创建项目(4)应用Django shell查看数据模型
在《Python 从0开始 一步步基于Django创建项目(3)》中已经向数据模型city,添加了两条数据:‘北京’、‘墨尔本’。又向数据模型entry中添加了若干条数据,分别与‘北京’、‘墨尔本’关联。而是把City当做外键的,相关模型的小写名称、下划线和单词set的组合。Django shell是Django提供的交互式环境,可以通过编程的方式查看数据模型中的数据。3、查看模型City、Entry中的所有数据及其ID。2、查看模型City、Entry中的所有数据。5、查看与‘北京’相关联的条目。
2024-03-23 18:05:50
583
原创 Python 从0开始 一步步基于Django创建项目(3)使用Admin site管理数据模型
打开C:\D\Python\Python310\study\snap_gram\city_infos路径下的admin.py文件。要管理的模型,就是在《Python 从0开始 一步步基于Django创建项目(2)创建应用程序&数据模型》中定义的:City、Entry。此处创建的管理员的Username和Password都是sg_admin。Django提供的admin site,使得网站管理员,能够轻松管理网站的数据模型。3、在admin site中注册要管理的模型。6、点击对应条目进行编辑。
2024-03-23 17:30:53
442
原创 Python 从0开始 一步步基于Django创建项目(2)创建应用程序&数据模型
1)在控制台输入命令python manage.py makemigrations city_infos,生成数据库更新文件0001_initial,其路径是:C:\D\Python\Python310\study\snap_gram\city_infos\migrations。1)打开文件models.py,其路径是:C:\D\Python\Python310\study\snap_gram\city_infos。2)编写数据类,这里编写了两个数据类,城市类,城市信息类。2、编写应用程序的数据类。
2024-03-22 21:29:47
510
原创 Python 从0开始 一步步基于Django创建项目(1)
完成后,在项目根目录C:\D\Python\Python310\study\snap_gram下新增如下内容。在C:\D\Python\Python310\study\snap_gram\snap_gram下也有新增。在C:\D\Python\Python310\study\snap_gram\sg_env\Scripts路径下,新增文件夹和文件若干。在C:\D\Python\Python310\study\snap_gram\snap_gram下也有新增。在‘项目根目录’下,新增sg_env文件夹。
2024-03-22 08:23:57
628
原创 Python Windows系统 虚拟环境使用
3)执行命令:python -m venv ll_env,即可创建一个名为ll_env的虚拟环境。4)检查learning_log目录下,新创建了一个名为ll_env的子文件夹。环境激活后,可在环境中安装包,这些包只在环境处于激活状态时才能使用。1)为项目新建一个目录(比如:目录命名为learning_log)3)虚拟环境激活后,在命令行头部的(ll_env)消失。3)虚拟环境激活后,在命令行头部显示(ll_env)目录下,并且该目录中有一个名为。2)运行deactivate。2)在终端中切换到这个目录。
2024-03-21 18:12:32
352
原创 Python 使用requests模块 执行Web API调用 获取网站数据并可视化
再使用r.json()方法,将获得的数据保存在‘字典’response_dict中。使用网站提供的API可以使用requests.get方法获得网站数据。当r.status_code为200是,表明获得的数据是完整的。对字典中的数据结构进行整理,筛选,可以进一步实现数据可视化。网站数据保存在变量r中。
2024-03-21 12:22:00
474
原创 Python 解析json文件 使用Plotly绘制地理散点图(更改配色)
1、根据地震烈度,使用不同颜色的点标记:在px.scatter_geo中传递参数:color='mags'。本文建立在《Python 解析json文件 使用Plotly绘制地理散点图》文章基础之上。2、更改‘渐变色’方案,改变标记点配色。1、未设置color参数时。2、使用默认渐变配色方案时。3、使用自选渐变配色方案时。
2024-03-21 08:46:25
433
原创 Python 数据分析模块pandas 如何创建DataFrame
是 Python 内置函数,用于将多个可迭代对象(例如列表、元组等)中对应位置的元素打包成一个个元组,然后返回由这些元组组成的迭代器。这样可以方便地将多个列表或元组中的数据一一对应地组合起来。以下用两种方式分别创建DataFrame。例如,如果有两个列表。
2024-03-21 08:35:50
462
原创 Python 解析json文件 使用Plotly绘制地理散点图
Plotly Express 中的函数是用于创建地理散点图的函数。它允许用户轻松地在地图上绘制数据点,每个数据点表示一个地理位置,并且可以根据数据中的某些属性来自定义数据点的颜色、大小等。data_frame: 包含数据的 DataFrame 对象。lat和lon: 分别指定纬度和经度数据所在的列名。locations: 指定用于标识地理位置的列名。color和size: 分别指定数据点的颜色和大小所对应的列名。hover_name和hover_data: 分别指定悬停时显示的标签和其他数据。
2024-03-20 20:24:36
2289
原创 Python 使用Plotly绘制柱状图
目标:统计三个6面骰子,各投掷一次,三次投掷点数之和的结果分布。1)不需要额外添加字体,就能正确显示中文。2)绘制后的图形可以与用户交互。
2024-03-20 10:00:00
690
原创 Python 解析CSV文件 使用Matplotlib绘图
例如:"0.0","2016-01-03","1","3","2016","Birmingham","BHM","Birmingham, AL","Alabama","39","46","32","33","4.33":comma-separated values,是在文件中存储一系列以‘,’分隔的值。数据存储在CSV文件中,使用Matplotlib实现数据可视化。本文使用的CSV文件是一组天气数据。
2024-03-20 09:38:06
794
Python 解析天气CSV文件 使用Matplotlib绘图
2024-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人