- 博客(35)
- 资源 (4)
- 收藏
- 关注
原创 Django框架(二十九:rest_framework 版本)
通过自定义手段来实现后台获取接口版本号,也可以使用drf内置的类实现。如果使用内置的类,直接在REST_FRAMEWORK配置中,配置成内置类即可。在utils包中新建version.py文件from rest_framework.versioning import BaseVersioningclass Version(BaseVersioning): # determine: ...
2018-12-06 21:36:13 274
原创 Django框架(二十九:rest_framework 节流)
自定义节流的方法 ,限制60s内只能访问3次from rest_framework.throttling import BaseThrottle, SimpleRateThrottleimport timeclass ThrottleAuth(BaseThrottle): # 声明一个字典,用于保存不同用户的访问时间。 visit_dict = {} def __in...
2018-12-06 20:59:04 229
原创 Django框架(二十八:rest_framework 权限)
Permissions: 权限,表示用户在认证成功(登录)的前提下,对一些接口是否拥有访问权限,有权限就可以访问,没有权限不能访问。(1)在自己建的utils包中新建两个类,继承与BasePermissionclass PTPermission(BasePermission): message = '对不起,你不是普通用户,无权访问!' def has_permission(s...
2018-12-06 20:41:21 236
转载 Django框架(二十七:rest_framework 模拟登陆)
较为简单,看代码和注释class AuthView(APIView): # 使用这个局部认证配置覆盖全局的认证配置。值为[],表示不进行认证。 authentication_classes = [] permission_classes = [] throttle_classes = [] """ 用户认证(登录)接口 """ d..
2018-12-06 20:19:11 209
原创 Django框架(二十六:rest framework 认证)
一,基础:1.1安装pip install djangorestframework二:基础知识首先必须要知道django-rest-framework源码中到处都是基于CBV和面向对象的封装其次是CBV:基于反射实现根据请求方式不同,执行不同的方法三:简单实例3.1 urls.pypath('auth/', AuthView.as_view()),3.2 settings.p...
2018-12-06 20:05:02 302
原创 Django框架(二十五:CBV的执行流程)
先在views.py中定义一个CBV视图,以供例子讲解再定义一个CBV的路由,如下图:会发现其中调用as_view()这个函数,在源码中可看到,它其实返回的是一个view对象,所以,当前端请求/student/这个路由的时候,并没有直接调用StudentView视图中相应的方法如get/post/put等,而是走到了as_view中,并返回view对象那么这个view又是什么呢,如...
2018-12-04 21:17:00 292
原创 Django框架(二十四:前后端分离之分页的设置和csrf认证的解决)
前后端分离开发和混合开发的区别还是很大的。前后端分离我们需要遵循restful规范,先介绍什么是restful api规范a.同一种数据的操作,只设置一个url路由。也就是根据请求方法来区分具体的处理逻辑。而不再设置多个增删改查的路由。 (1)可以基于FBV来通过请求方法的不同,处理不同的逻辑。 url(r'^order/', views.order), ...
2018-12-03 20:37:27 2443 1
原创 Django框架(二十三:Blog——自定义登录装饰器,登录后跳转到点击页面)
urls.py文件:from django.urls import path, re_pathfrom .views import *urlpatterns = [ re_path(r'^index/$', index, name='blog_index'), re_path(r'^register/$', register, name='user_register'),...
2018-11-27 21:39:24 651
原创 Django框架(二十二:实现分页功能的几种方式)
介绍三种实现分页功能的方式,前两种为简单的,后一种稍微复杂一些第一种方式:如图所示,能一次将所有页都能展示出来视图函数:from django.core.paginator import Paginator, PageNotAnInteger, InvalidPage, EmptyPagedef select(request): # 1. 把需要分页的数据全部查询出来; ...
2018-11-20 19:42:42 3798
翻译 Django框架(二十一:设置全局变量以供多个视图函数模板使用)
将所有共有的变量整理提取出来,然后返回一个字典def global_params(request): category_list = Category.objects.all() # 查询所有广告信息 ad_list = Ad.objects.all() archive_list = Article.objects.archive_date(article_l...
2018-11-19 20:25:44 3205
原创 Django框架(二十:富文本框的实现)
当我们添加的文本内容很多的时候,需要用到像下面这样的富文本框,那么怎么实现呢。首先,去富文本官方下载相关文档第二步:将压缩文件解压缩并导入到static文件夹下,并将箭头所指的文件删除第三步:建立下图的js文件配置文件内容KindEditor.ready(function(K){ window.editor = K.create('#id_content', { ...
2018-11-19 20:17:30 2137
原创 django框架(十八:实现文章归档的几种方式)
第一种:定义普通的函数查询所有的文章,并按照时间归档def index(request): article_list = Article.objects.all() archive_list = archive_article(article_list)def archive_article(article_list): archive_list = [] for ...
2018-11-19 19:34:48 1488
原创 Django框架(十七:session和cookie)
django中的cookie和session:用户在前端登录以后,此时django会在django_session这个表中,生成一个键值对:session_key和session_data;其中,session_key是用于在响应中通过Set-Cookie字段返回给浏览器,浏览器会将这个session_key(sessionid)的值存储到本地;等用户登录完以后,在访问其它页面的时候,浏览...
2018-11-08 20:36:11 199
原创 Django框架(十六:上传图片到自定义目录下)
如何将图片上传到自定义目录下upload_to: 在根目录下(MEDIA_ROOT)要生成的目录MEDIA_ROOT: 只要上传图片,肯定要设置,用于指定图片上传的根目录。可以设置在static下(static目录的搜索路径,已经通过STATICFILES_DIRS配置过了),也可以自定义根目录(MEDIA_URL)。在上一篇已经介绍了将图片上传到static目录下的设置,现在我们来实现将...
2018-11-08 20:05:52 789
原创 Django框架(十五:表单中图片的上传)
图片的上传,就是后台获取表单传过来的图片并保存。需要实现两部分,一部分是将图片的路径保存到数据库,另一部分是把图片文件上传到后台。下面来执行具体的操作:由于上传图片时默认保存在根目录下的,所以需在settings.py文件中配置图片上传的路径定义一个Model类,在Model中声明一个用于保存图片地址的字段,放在数据库的表中;(此处不再展示代码)在html文件中添加上传图片的表单。in...
2018-11-07 19:44:11 2344
原创 Django框架(十四:admin后台管理系统)
admin管理后台:是Django提供的一套用于管理用户和数据的web系统,通过它可以很方便的实现数据的增删改查功能,实现对用户的管理。简单实现admin的步骤:创建Model类,并同步至数据库from django.db import modelsclass Novel(models.Model): n_title = models.CharField(max_length...
2018-10-30 20:38:16 6295 1
原创 django框架(十三:orm的多对多操作)
什么是多对多?多对多:一个表中的一条数据对应另一个表中的多条数据;另外一个表中的一条数据对应着前一个表中的多条数据图例:以出版社和文章为例:怎么解决多对多的对应关系呢?不能使用之前的一对多时的外键了,我们可以通过第三张表来表示。如图:接下来在models.py文件中创建图例的两个表class Publiation(models.Model): ''' 出版社(主表...
2018-10-30 12:11:34 832
翻译 Django框架(十二:orm一对一的操作)
前面的博客已经对数据库的基础知识有了介绍,对数据库数据一对多的操作有了了解,现在来看看数据库的一对一操作,非常简单数据库中建立两张表,一个账户表,一个用户表。一个账户对应一个用户,即一对一关系,ORM数据库的一对一关系:一个表中的一条数据对应着另外一个表中的一条数据。在创建表的时候需要介绍几个参数:from django.db import modelsclass Account(mod...
2018-10-29 21:12:43 381
原创 Django框架(十一:orm操作之表的一对多)
先创建两个表,一个为教室表,一个为学生表,两者为一对多的关系,也就是一个老师能有多个学生,但是一个学生只能有一个老师,所以学生表可以用教室的id作为外键教师表:学生表:向表中添加多条数据用于测试,可在数据库的可视化工具中手动添加,也可以用代码添加(Django框架的博客第十已经介绍),也可以使用admin配置(接下来会对这种方法进行详细介绍)如下图,我在里面插入了三条数据,其中两条是同...
2018-10-29 20:36:07 217
原创 Django框架(十:orm操作)
model.py文件介绍:model.py这个文件中定义的model模型,对应的是数据库中的表及字段。操作数据库的两个命令:1.python manage.py makemigrations 作用:收集model.py文件中发生变化的模型类,执行这个命令,如果出现No change detected,说明django没有检测到当前model发生变化2.python manage.py m...
2018-10-29 17:47:04 244
原创 Django框架(九:自定义form表单,及get强求和post请求的区分)
步骤:先在app下创建一个forms.py文件,文件名是固定的,并在这个文件中声明一个form类。from django import formsclass CustomForm(forms.Form):定制input标签,声明相关字段类型# IntegerField()用来表明输入框值的类型。 # label参数对应的就是<label for="a">数...
2018-10-27 15:19:02 762
转载 Django框架(八:urlname——name参数的作用)
name参数的作用:主要是通过那么的值,来查找url地址,可以理解为反射的作用。在html模板中使用name来反射url,优势就是后期url规则发生改变之后,只需要调整urls.py即可,所有的模板文件都不需要修改。在urls.py文件中添加如下两个路由。urlpatterns = [ path('admin/', admin.site.urls), path('sum/',...
2018-10-22 21:54:12 1322
原创 Django框架(七:静态文件的导入,并提取出相同的部分作为父模板来继承)
在第五篇我已经介绍了模板的继承,今天就来实际的应用一下。我们使用伯乐在线(网页链接)来做个实例。首先可以抽取功能的源代码来做练习,比如伯乐在线的“IT职场”和“数据库”的所有源代码,个人使用抽取源代码的工具——仿站小工具。将抽取好的文件保存到本地。然后在项目的根目录下建一个目录static,注意这个名称是固定不变的,并在下面继续建立相应的目录,如css/image/js等等,然后将下载的...
2018-10-22 21:07:31 613
原创 Djang框架( 一:django框架的简介以及urls.py文件的使用)
Django框架:pip install Django;1.创建项目django-admin startproject 项目名称(project)2.进入项目根目录cd project3.创建app应用python manage.py startapp 应用名称Django简介:Django是使用python语言开发的一套免费开源的后台web框架,主要为前端HTML提...
2018-10-22 19:46:56 1910
原创 Django框架(六:在pycharm中项目的创建方式)
如何创建一个Django新的项目:第一种方式就是cmd,这种放式在前面介绍Django框架的第一篇已经介绍过,不直接也不方便,现在介绍的是第二种方式:在pycharm中直接创建。方式:点击File-&gt;New Project-&gt;Django,见到如下页面:对页面做个简单介绍:接下来就创建新的项目和app点击创建后会弹出如下选择框:我们选择在新的窗口打开,新建的项目如下...
2018-10-22 19:38:39 340
原创 Django框架(五:模板继承)
模板继承:对于一个网址来说,会存在很对的.html文件,但是由于一些页面中会有相同的页面结构出现,也就导致了.html文件中代码是重复的,所以为了在html中减少重复代码出现,简化html结构,可以将多个页面中相同的html代码,单独的抽离出来放在一个html文件中,其他的html文件如果想要使用这部分内容,直接继承过去就可以了。有的类似于类的继承首先在urls.py文件中创建多个路由对应的...
2018-10-18 19:23:31 260
原创 Django框架(四:Django自定义标签和过滤器)
如何自定义Django模板语言中的标签和过滤器1.在app下或者在项目根目录下新建包文件夹:templatetags(名称固定);2.在这个包中新建一个.py文件,名称自定义;**注意:**创建的templatetags包必须和views.py文件同阶,在同一个app 下,调整如下:实例代码,views.py中的设置:接下来进入自己创建的.py文件中,注册过滤器,过程如下:fr...
2018-10-18 11:09:24 245
原创 Django框架(三:templates的设置)
模板的渲染:视图函数在返回Response的时候,返回的是一个HTML文件,并且会传递一些数据给HTML,最终将这些数据展示页面中。Django中提供了一个templates文件夹,用于存放所有的html文件。templates文件夹的创建位置:在项目根目录下创建:这种情况整个项目只有一个templates文件夹,供所有的APP使用;分模块,在各自的app下创建templates文件夹。...
2018-10-17 21:49:18 2664
原创 DjangoCourse(二: 通过url路由,向视图函数传递参数)
urls.py文件中的这些地址,称为url路由,就是url地址。如何通过url路由,向视图函数(Function views)传递参数。直接在浏览器的url后,使用?和&符号拼接参数,视图函数应如何接受参数?# urls.py文件中:path('args/',views.params_first)在views.py中的设置def params_first(request)...
2018-10-17 21:12:45 3276
原创 scrapy重写pipelines.py存储图片
重写pipeline.pyimport scrapyfrom scrapy.pipelines.images import ImagesPipelineclass ZhanzhangsucaispiderPipeline(object): def process_item(self, item, spider): return item#自定义图片存储pipe...
2018-09-27 21:23:12 918 1
原创 scrapy框架settings.py文件内容的注释
# -*- coding: utf-8 -*-# Scrapy settings for QiShuSpider project## For simplicity, this file contains only settings considered important or# commonly used. You can find more settings consulting t...
2018-09-26 21:40:12 477
转载 selenium模拟登陆百度云盘
from selenium import webdriverimport timedriver=webdriver.Chrome()driver.maximize_window()driver.get("https://pan.baidu.com/")driver.implicitly_wait(5)time.sleep(3)#等待三秒钟定位到账号密码登陆这个地方,进行点击dr...
2018-09-26 21:04:38 1247
原创 selenium模块的详细总结
使用selenium对网页发起请求# 导入webdriverfrom selenium import webdriver# 创建一个浏览器对象browser = webdriver.Chrome()# 使用浏览器对象对网址发起请求browser.get('url')selenium的定位单个节点# 通过id值匹配res = browser.find_element_by_id(...
2018-09-20 22:15:00 948
原创 Scrapy框架使用微博CookiesPool时的相关设置
我们想要爬取微博这样的大型网站,如果不采取一些措施,IP很容易遭到查封,而使用cookie池便是很好的方法。**第一步:**下载代理Cookie池下载网址:GitHub:https://github.com/Python3WebSpider/CookiesPool进入到该网站并下载下载完成解压缩文件之后,需要进行一些配置的更改,如图以及config.py文件底部的设置,第一个在新...
2018-09-20 19:26:34 585 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人