- 博客(44)
- 资源 (7)
- 收藏
- 关注
原创 第12次08附件:省、市、区县三级行政区划数据库表
INSERT INTO `tb_areas` VALUES ('622927', '积石山保安族东乡族撒拉族自治县', '622900');INSERT INTO `tb_areas` VALUES ('530827', '孟连傣族拉祜族佤族自治县', '530800');INSERT INTO `tb_areas` VALUES ('653000', '克孜勒苏柯尔克孜自治州', '650000');
2025-05-27 08:47:44
512
原创 第12次08: 省市县区三级联动收货地址
第1步:在areas应用下models.py中定义地区模型类。第3步:将areas.sql文件导入数据库。第5步:配置根路由和areas应用子路由。第4步:在areas应用下,定义视图。第2步:生成迁移文件和执行迁移文件。
2025-05-26 19:02:55
131
原创 第12次07 :邮箱的验证
登录QQ邮箱—点击右上角“设置”—点击左下角“账号与安全”—点击左侧“安全设置”—找到“POP3/IMAP/SMTP/Exchange/CardDA服务"选项,按提示步骤开启SMTP服务,需要发送两个手机验证码。第7步:在users应用下utils.py中定义生成邮箱验证url的函数和反序列化的函数。第3步:定义发送邮件的函数,在users应用下创建emails.py,并定义函数。第6步:定义验证邮箱的链接部分的固定串和有效期,在dev.py中。第9步:views.py中定义验证邮箱的类视图。
2025-05-26 19:00:23
100
原创 第12次06 :用户中心添加邮箱
第一步:定义用于保存邮箱信息的视图,由于需要用户登录之后才能添加邮箱,所以在前后端交互时要先进行用户登录状态的验证(因会过期),数据交互使用json。在xiaoyumall/utils下创建views.py,并定义限制用户访问类。第三步:调整session时长,验证。继承这个类即可实现登录状态的验证。
2025-05-26 18:58:11
217
原创 第12次05: 用户中心-用户基本信息
第一步:未登录时,访问需要用户认证的页面时,需要跳转到登录页,在dev.py中配置第二步:登录后的重定向,如果刚才未登录的情况下,要访问用户中心页面,会直接跳转到登录页面,此时输入用户名密码之后会直接跳转到用户中心页面。LoginView.py第三步:创建用户中心视图类第四步:User模型中增加邮箱字段第五步:用户中心页面user_center_info.html第六步:配置路由第七步:index.html中把用户中心的注解去掉
2025-05-26 18:56:16
622
原创 第12次03 :登录状态的保持
需要在RegisterView视图的post()方法中增加调用login()函数的代码,增加后如下。函数封装了将用户信息写入session的操作,便于快速实现登录并保持其登录状态。启动redis-cli.exe,选择1号库,可查到。第二步:记住登录状态,LoginView视图新增。新增后完整LoginView。第一步:用户注册的状态保持。
2025-05-26 18:54:22
156
原创 第12次04 :首页展示用户名
第三步:在users应用中增加退出登录的视图类,完成清除cookie和重定向到首页的逻辑,并配置路由。登录后,跳转到首页,首页会展示用户名;未登录时,首页将展示登录与注册的选项。第二步:补充后端代码,在登录与注册视图中增加设置cookie的语句。配置路由,users应用下子路由新增。第一步:index.html。
2025-05-26 18:52:57
360
原创 第16次(简要版)-支付与订单
1、在goods/models.py中,新增模型OrderInfos模型2、将模型注册到后台管理系统中,打开goods应用下的admin.py文件,添加内容如下admin.site.register(OrderInfos)3、生成迁移文件并执行迁移,python manage.py makemigrationspython manage.py migrate查看数据库可发现新表goods_orderinfos1、在templates文件夹下新建orderinfo.html,代码如下:2、修改
2025-05-20 08:40:18
761
原创 第15次(简要版)-购物车
4、修改auth_app的登录视图,为当前用户添加cookie,以获取当前用户的购物车信息,cookie详细介绍参考第八章用户验证系统PPT,auth_app/views.py。7、同时,在goods应用下的views.py文件文件中,新增 addcart()和delt()方法。2、将模型注册到后台管理系统中,打开goods应用下的admin.py文件,添加内容如下。2、在goods/urls.py,添加购物车carts路径。3、在goods/views.py,定义购物车视图。3、生成迁移文件并执行迁移,
2025-05-20 08:37:56
795
原创 第14次(简要版)-商品详情
1、在goods/models.py中,新增模型Guige_leixing、Guige,Guige_leixing模型代码放在shangpin模型上方,否则可能提示Guige_leixing不存在,2、修改模版文件夹下的index.html,为base.html的子模版,同时新增了一个导航栏用于显示商品类别,可进行检索。3、为了实现商品类别检索,需在goods应用下的views.py文件,新增相应视图函数。4、同时,在goods应用下的urls.py文件文件中,新增相应路由规则。商品规格、商品规格类型。
2025-05-20 08:36:23
959
原创 第13次(简要版)-商品展示
打开浏览器输入:http://127.0.0.1:8000/admin/,进行管理员登录,查看已注册的数据库表。static用于存储不经常变化的资源,如系统图标,media可用于存储经常变化的资源,如上传的图片。(1)static 静态资源配置,在settings.py文件中添加:(注:若已存在无需添加)访问浏览器,http://127.0.0.1:8000/index/,可以看到静态页面即成功。将模型注册到后台管理系统中,打开goods应用下的admin.py文件,添加内容如下。密码:123456;
2025-05-20 08:34:58
858
原创 第12次(简要版)-登录与退出
判断用户是否登录, 如果用户没有登录, 默认会跳转到’/accounts/login/‘,并且URL会自动加上你请求的url作为登录后的跳转地址, 如:’/accounts/login/?next=/user/address/‘登入完后会去请求’/user/address/', 如果登录了, 会正常执行。在应用auth_app下的路由文件中urls.py文件中新增路由规则。auth_app/urls.py文件中添路径。auth_app/urls.py文件中添路径。(2)修改未登录时默认跳转的地址。
2025-05-14 07:19:14
773
原创 第12次02:小鱼商城-手机号登录
Django框架自带的authenticate()方法只支持使用用户名登录,其内部通过backend对象的authenticate()方法获取用户;若要使用手机号登录,需要重写backend对象的authenticate()方法。第一步:在users下定义utils.py,在其中定义get_user_by_account()方法,用于识别用户输入的是用户名还是手机号。第二步:在上一步的utils.py中自定义backend类,并重写authenticate()方法。
2025-05-13 10:22:41
163
原创 第12次01:小鱼商城-用户名登录
本节内容视频地址:https://www.bilibili.com/video/BV1BLEJzUEFn/users应用子路由新增。
2025-05-13 10:17:08
302
原创 第11次:用户注册(完整版)
上面代码用的状态码定义在xiaoyu_mall/xiaoyu_mall/utils/response_code.py中。图形验证码要存在redis数据库中,在xiaoyu_mall/dev.py配置使用redis的2号库存图形验证码。第二步:在配置文件中配置自定义User模型类,用自定义的User模型类代替Django自带的User模型类。在verifications应用下views.py定义生成图形验证码的类视图。在verifications应用中创建verify_pic.py。第一步:定义用户模型类。
2025-05-06 13:23:40
439
原创 第11次:用户注册(简要版)
在templates文件夹下边新建register.html,代码如下:2、定义对应的视图类在auth_app/views.py文件中定义处理用户注册请求的视图类RegisterView(),分别处理浏览器发起的GET请求和POST请求。处理get请求。当后端接收到用户通过浏览器发起的get请求后,调用RegisterView()里的get()方法处理GET请求,并返回register.html页面。注册数据通过前端校验之后,用户单击注册按钮,浏览器会向后端发送POST请求,Django接收注册页
2025-05-06 13:21:27
527
原创 第10次:电商项目配置开发环境
第三步:在jinja2中引用静态文件和在页面中对url反向解析相对复杂,这里通过自定义的方式将引用静态文件和反向解析两个操作与Django引擎下的操作保持一致。第三步:测试,运行项目,浏览器输入http://127.0.0.1:8000/static/images/adv01.jpg,若可访问到静态图片,说明配置成功。开发环境用于日常开发,生产环境用于线上部署,为避免单个环境下相互干扰,考虑将二者分开,须完成两步操作。第三步:配置redis数据库,在dev.py与prod.py中。
2025-04-29 17:31:55
1416
原创 第8次:表单集
从以上示例可以看出,如果想要把页面提交的表单从2个变成3个,既要修改视图函数,又要修改HTML页面,耦合度较高,不利于扩展。表单集即多个表单的集合,从此处可以看出表单集(FormSet)由表单(Form)构成。通过表单集,可一键添加多个表单的数据,如在一个页面一键提交多个用户或商品的信息。第二步:定义视图函数,这里通过for循环一次性处理了所有的表单数据,处理更简单。第一步:应用form01下,创建forms.py模块,在其中定义表单类。第一步:froms应用下forms.py中创建表单。
2025-04-14 11:56:06
348
原创 第7次:表单
在Django框架中,有两种定义表单的方式。在HTML中可使用<form>标签定义表单域,此表单域中再包含单选或多行文本框、密码框、单选按钮、复选按框、下拉选择框等元素。这种方式的特点是使用纯粹的HTML和CSS知识实现,学习的成本较低,更适用于对前端HTML比较擅长的同学。在Python代码中通过Form类或其子类也可以定义表单。因表单类生成的表单不包含<form>标签,使用时须将其嵌入到<form>标签中。这种方式的特点是可表单类或表单类的部分属性,这种方式适用于喜欢写Python代码的同学。
2025-04-08 17:08:30
619
1
原创 SpringBoot+Vue项目系列教程-06-统一返回值的全局处理
前言上一节课定义好了统一返回值的格式,但是还需要在每个接口都返回定义好的Reust对象,并在此对象中携带业务相关的数据。这一节讲统一处理返回值,即每个接口只返回业务相关的数据,然后由拦截器中统一包装成Result对象返回。再重复一下思路:增加一个自定义注解类,表示接口返回值都要统一包装 定义拦截器,使用拦截器对所有请求对所有请求拦截,将所有使用@ResponseResult注解的类和方法做统一处理 配置拦截器,拦截所有请求 重新封装返回体 在控制器类或方法中使用此注解,测试效果自定
2020-12-18 14:31:17
1040
原创 SpringBoot+Vue项目系列教程-05-如何优雅地定义统一返回值
前言在一个后台中会有很多的接口,所有接口返回统一的结果无疑是非常重要。返回结果中无非包括两个方面的信息,状态(是否成功)和数据,状态是必须的,数据不是必须的。如登录接口,返回结果中只有是否登录成功;获取列表信息的接口,则包括是否成功和成功的对应数据列表。后端返回给前端的统一结果一般用json定义,{ //状态码 code:200, //与状态码对应的描述信息 msg:"成功", //携带的数据,可为空 data:{}}如何定...
2020-12-18 14:30:03
1363
原创 SpringBoot+Vue项目系列教程-04-两步学会拦截器的用法
本来这一节想讲接口的统一返回值的,发现用到拦截器,所以这一节先做个铺垫,讲一下拦截器,后面再讲“统一的返回格式”,“统一返回值的全局处理”和“异常的全局处理”。为什么要用拦截器考虑这样的场景:1、在后台的返回值中,每个接口返回的数据都不一样,有可能是字符串,也有可能是List,也有可能是Map,如果直接返回这样的数据,相信前端会疯掉的。2、所有的管理平台都需要登录之后才能操作,每个接口收到请求后再处理肯定不合适,有没有统一的处理办法?解决的方法就是通过拦截器,在接口处理之前或者之后一次性
2020-12-18 14:27:32
1563
原创 SpringBoot+Vue项目系列教程-03-热部署
在进行SpringBoot开发时,如果每修改一次代码都要重新运行一次的话,也是挺麻烦的。如果保存代码后,应用能自动更新部署,岂不是很爽。今天就加上这一小技能,有了它会感觉编码神清气爽很多。总共分为3步:增加热部署的依赖 设置自动编译 打开IDEA的自动编译下面详细说明如上步骤:增加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId&g
2020-12-18 14:25:49
1060
原创 SpringBoot+Vue项目系列教程-02-YML配置文件的使用
前言上一篇文章详细讲解了SpringBoot项目的创建过程,以及如何对外提供接口服务。我们访问的地址是:http://localhost:8080/hello,如果细心的话,还可以从控制台看到端口为8080的信息。8080端口是默认的端口,如果需要修改端口怎么处理?SpringBoot有一个默认的配置文件application.properties,在这个文件中不仅可以配置端口,还可配置许多其它的配置项,如web、数据库、缓存、spring核心配置等,具体的配置项在官网https://docs.
2020-12-18 14:14:48
1595
6
原创 SpringBoot+Vue项目系列教程-01-创建项目后端
先闲聊几句好记性不如烂笔头,记录下来,最好组织自己的语言记录下来开发的详细过程,这样的收获才是最大的。听传言说:开发界的大牛都是写文章的高手,相信此言不虚!有问题,请留言,见必回。会写哪些内容SpringBoot是最火的web开发框架,Vue是最火的前端框架,可是无论是哪一个视频平台或者图文博客平台,都没有使用springboot + vue写出完整项目的开发教程。要么只讲spring boot,要么只讲vue,好不容易有个前后端都有的教程,后端可能是用node.js或php实现,而且只
2020-12-18 14:11:55
2248
原创 如何理解java的回调函数?
对于技术问题,会用是一回事,理解这个技术问题的来龙去脉、设计者当初为什么要设计这个功能、这个技术问题有哪些优势、适用哪些场景又是另外回事了。前者照猫画虎得其形,后者形神兼备得其意,这也是所谓青铜与王者的区别。会使用、又能理解已经不易,如果还能表达出来,讲所有人都能看明白就更不容易了。在软件开发这个行业,回调函数是最常见的功能。在图形界面开发的时候,每一个按钮的点击事件都会用到回调函数。什么是回调函数?为什么要用回调函数?在java中,为什么要用接口来实现回调函数?这是要弄明白的
2020-12-04 16:51:05
632
3
原创 android中Logcat的深层理解
Android的开发也可以归类为嵌入式设备的开发,即便不是嵌入式开发,依然要注意对内存和处理的使用。养成一个好的习惯对自己的帮助是很大的。在Log的源码中可以看到这样的注释:The order in terms of verbosity, from least to most is * ERROR, WARN, INFO, DEBUG, VERBOSE. Verbose should
2014-08-07 16:43:44
2983
原创 Android OTG的了解
工作中要用到OTG的功能,今天花时间了解了一下,在此做一个简短的总结。OTG是on - the - go的缩写,主要应用于各种不同的设备或移动设备间的连接,进行数据交换。这是otg的功能,即是数据交换。可是怎么用OTG功能呢,并不是所有手机都有这种功能,如果手机支持OTG功能,一定是用USB OTG来传输数据。需要一条OTG数据线,另外对特定设备的读取也需要软件的支持,这个软件
2014-01-20 14:59:31
3933
原创 android Bitmap 转成 Drawable
实际工作中遇到这样一种情况,从服务器上下载的图片以Bitmap对象保存,现在需要要显示到ImageView控件里面,但是ImageView并没有提供直接使用Bitmap的方法,但是ImageView提供了setBackgroundDrawable(Drawable)方法,BitmapDrawable是Drawable是一个子类,而通过new BitmapDarwable(bitmap)即得到Bit
2013-09-09 15:11:34
4029
原创 java mysql数据库取数据
Class.forName("com.mysql.jdbc.Driver");//加载驱动 String url = "jdbc:mysql://localhost/bbs?user=root&password=root"; Connection conn = DriverManager.getConnection(url);//建立连接 Statement stmt = conn.crea
2013-08-20 17:20:36
2033
原创 android 修改已建工程的API版本
比如已经创建好的工作版本为,miniversion=8,targetversion= 17但是使用过程中发现同样一个activity在2.3的系统和4.1的系统背景都不一样,想把系统的跨度变小一点。方法:修改default.properties中的android-target和androidManifest文件下的android version就可以了。完成之后,API自动就变回来了。
2013-07-19 14:21:54
9766
原创 android传送照片到FTP服务器
在安卓环境下可以使用,在java环境下也可以使用,本人先在Java环境下实现了功能,然后移植到了安卓手机上,其它都是一样的。package com.photo;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOE
2013-07-16 11:57:31
14029
5
原创 android gps经纬度实时更新,获取卫星数量
import java.util.ArrayList;import java.util.Iterator;import java.util.List;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.location.GpsS...
2012-10-05 13:32:47
19546
8
原创 android应用中去掉标题栏的方法
现在我坚定的认为写技术博客对自己有很大的帮助,写博客给自己一个学而思的机会。在android中去掉标题栏有三种方法,它们也有各自的特点。1.在代码里实现this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏记住:这句代码要写在setContentView()前面。2.在清单文件(manifest.xml)里面实现<app
2012-08-01 15:17:07
172869
19
原创 android真机测试时手机不能识别的问题
今天重新装的系统,环境也重新配置了一下,结果拿出手机真机测试的时候,eclipse识别不了手机,但是电脑与手机可以互传数据,两个内存卡都可以识别。这是电脑上没有安装调试驱动的问题,下载一个豌豆夹,它会帮助你自动安装好调试驱动,之后就可以真机调试了。
2012-07-17 18:40:18
4676
原创 使用Bundle在Activity之间传递数据
Bundle可能过put****()方法添加各种类型的数据,Intent也可以通过putExtras(Bundle)将数据添加进去,然后通过startActivity()跳到下一下Activity的时候就把数据也传到下一个Activity了。package com.intent;import android.app.Activity;import android.content.Inte
2012-04-10 16:57:10
10314
原创 sqlite3 表里插入系统时间(时间戳)
就像在提交日志的时候系统会把提交的时间记录下来一样,如果想在sqlite3下创建的表里插入数据的时候也把插入数据的时间点存储在sqlite数据库里怎么处理呢?创建一个数据库,如foo.db在这个表里创建一个表:CREATE TABLE time([ID] INTEGER PRIMARY KEY,[IDCardNo] VARCHAR (50),[CreatedTime]
2011-10-06 16:31:50
60587
4
eclipse+CDT配置说明
2010-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人