Django笔记04-项目搭建
项目开发流程
需求开发《用户需求说明书》《软件需求规格说明书》
技术预研《技术预研计划》《技术预研报告》
系统设计《体系结构设计报告》《用户界面报告》《数据库设计报告》《模块设计报告》
实现与测试《实现与测试计划》《编程文档》
系统测试《系统测试计划》《测试用例》《测试报告》
Beta 测试《Beta 测试协议》《Beta 测试报告》
客户验收 《客户验收计划》《客户验收报告》
技术评审《技术评审计划》《技术评审报告》《技术评审检查表》项目搭建
后台之会员编辑地址的使用在项目中头像上传时,使用的地址
为什么有些地方写 /static/uploads/
有些地方写 ./static/uploads/
甚至/home/yc/py16/py16-project/web/static/uploads/
总结来说:两种情况
一种是系统操作(os模块),可以使用./static/uploads/或者 /home/yc/py16/py16-project/web/static/uploads/
第二种是给服务器使用,浏览器访问时使用 /static/uploads/,因为此处/代表当前服务 ...
Python脚本实现汉字转拼音
起步中华文化博大精深,是中华民族的财富,吸收和继承发扬中 华文化,是现代每个炎黄子孙无可推卸的天职。
今天小编就交大家用python写一个脚本,实现汉子和拼音之间的转换
pinyin.py汉字转拼音,With Python
Example:
12345from pinyin import PinYintest = PinYin()test.load_word()test.hanzi2pinyin(string='钓鱼岛是中国的')
Out:
test.hanzi2pinyin(string='钓鱼岛是中国的')
['diao', 'yu', 'dao', 'shi', 'zhong', 'guo', 'de']
test.hanzi2pinyin_split(string='钓鱼岛是中国的', split="-")
diao-yu-dao-shi-zhong-guo-de
主程序123456 ...
Python脚本实现图片加水印
起步图片是指由图形、图像等构成的平面媒体,有形式的事物,我们看到的,是图画、照片、拓片等的统称。
为了保护一些原创图片的版权,某些时候我们需要在图片上面,加上水印,当然你可以用Photoshop来做,只不过如果图片数量过多,亦或者图片的动态生成的时候,使用ps将会稍有吃力.
今天小编就交大家用python写一个脚本,实现图片加水印
环境搭建python3.7 环境:python安装以及版本检测
pycharm2019:PyCharm的安装以及破解
pillow库的安装
1pip install pillow
关于pip的安装,可以参考:Python pip 安装与使用和pip配置
直接就上代码12345678910111213141516171819202122#!/usr/bin/env python# -*- coding:utf-8 -*-# Created by 秋叶夏风# 本模块的功能:<图片加水印># 导入所需要的库from PIL import Image, ImageDraw, ImageFontim = Image.open("6.jpg&q ...
Django笔记03-模板引擎
CSRF攻击CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本XSS,但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性
CSRF中间件和模板标签为防止跨站点请求伪造提供了易用的保护。
当恶意网站包含链接,表单按钮或某些旨在在您的网站上执行某些操作的JavaScript时,会使用在浏览器中访问恶意网站的登录用户的凭据进行此类攻击。
还介绍了一种相关攻击类型,即“登录CSRF”,攻击网站欺骗用户的浏览器,以便使用其他人的凭证登录到网站。
Template模板模板概念作为Web 框架,Django 需要一种很便利的方法以动态地生成HTML。最常见的做法是使用模板。
模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态 ...
58到家MySQL军规升级版
一、基础规范表存储引擎必须使用InnoDB表字符集默认使用utf8,必要时候使用utf8mb4解读:
(1)通用,无乱码风险,汉字3字节,英文1字节
(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它
禁止使用存储过程,视图,触发器,Event解读:
(1)对数据库性能影响较大,互联网业务,能让站点层和服务层干的事情,不要交到数据库层
(2)调试,排错,迁移都比较困难,扩展性较差
禁止在数据库中存储大文件,例如照片,可以将大文件存储在对象存储系统,数据库中存储路径禁止在线上环境做数据库压力测试测试,开发,线上数据库环境必须隔离二、命名规范库名,表名,列名必须用小写,采用下划线分隔解读:abc,Abc,ABC都是给自己埋坑
库名,表名,列名必须见名知义,长度不要超过32字符解读:tmp,wushan谁TM知道这些库是干嘛的
库备份必须以bak为前缀,以日期为后缀从库必须以-s为后缀
备库必须以-ss为后缀
三、表设计规范单实例表个数必须控制在2000个以内单表分表个数必须控制在1024个以内表必须有主键,推荐使用UNSIGNED整数为主键潜在坑:删除无主键的表,如果 ...
Django笔记02-进阶
模型查询查询集在管理器上调用过滤器方法会返回查询集,查询集表示从数据库中获取的对象集合
查询集经过过滤器筛选后返回新的查询集,因此可以写成链式过滤
惰性执行:创建查询集不会带来任何数据库的访问,直到调用数据时,才会访问数据库
何时对查询集求值:迭代,序列化,与if合用
返回查询集的方法,称为过滤器
all()
filter()
exclude()
order_by()
values():一个对象构成一个字典,然后构成一个列表返回写法:123filter(键1=值1,键2=值2)# 等价于filter(键1=值1).filter(键2=值2)
返回单个值的方法
get():返回单个满足条件的对象
如果未找到会引发”模型类.DoesNotExist”异常
如果多条被返回,会引发”模型类.MultipleObjectsReturned”异常
count():返回当前查询的总条数
first():返回第一个对象
last():返回最后一个对象
exists():判断查询集中是否有数据,如果有则返回True限制查询集
查询集返回列表,可以使用下标的方式进行限制,等同于sql中的limit ...
Django笔记01-基础
浅谈Web框架一,什么是框架?软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品,
框架的功能类似于基础设施,提供并实现最为基础的软件架构和体系
通常情况下我们依据框架来实现更为复杂的业务程序开发
一个字,框架就是程序的骨架
二,框架的优缺点可重用
成熟,稳健
可扩展性良好
选对框架很重要
三,python中常见的框架大包大揽 Django 被官方称之为完美主义者的Web框架。
力求精简 web.py和Tornado
新生代微框架 Flask和Bottle
MVC设计模式MVC实现了前后端和数据的分离,程序的解耦合,实现了程序的可扩展性,可维护性
英文
中文
针对部分
作用
Model
模型
是针对数据库层面的
程序调用模型,直接操作继承model的模型对象
View
视图
是针对用户界面的数据显示
模板(hmtl)
Controller
控制器
针对业务逻辑的操作
python程序
MVT
M
Model
模型
数据层
V
View
视图
业务逻辑
T
Template
模板
html
起步1. 认识DjangoDj ...
Python中的yield详解
阅读别人的python源码时碰到了这个yield这个关键字,各种搜索终于搞懂了,在此做一下总结:
通常的for…in…循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表,字符串,文件。它可以是mylist = [1, 2, 3],也可以是mylist = [x*x for x in range(3)]。它的缺陷是所有数据都在内存中,如果有海量数据的话将会非常耗内存。
生成器是可以迭代的,但只可以读取它一次。因为用的时候才生成。比如 mygenerator = (x*x for x in range(3)),注意这里用到了(),它就不是数组,而上面的例子是[]。
我理解的生成器(generator)能够迭代的关键是它有一个next()方法,工作原理就是通过重复调用next()方法,直到捕获一个异常。可以用上面的mygenerator测试。
带有 yield 的函数不再是一个普通函数,而是一个生成器generator,可用于迭代,工作原理同上。
yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。重点是:下一次迭代 ...
Scrapy笔记02
项目结构
Scrapy Engine:提供并发的支持-已经实现好的
Scheduler(调度器): 存储以及调度(URL+函数) = Request - 已经实现好的,不需要修改
Downloader(下载器):爬虫第三部,通过request下载返回值(HTML,JSON),RESPONSE - 已经实现好的
Spiders(蜘蛛):爬虫第四步,获取到了Response之后,需要定位具体信息 - 需要自己实现的
Item Pipeline(项目管道):存储或者是继续处理具体信息 - 需要自己实现的
新建一个Scrapy的项目
爬虫的重点在分析网页上面,而不是在写程序上面
后续内容
post请求怎么办
如何使用image pipeline
如何添加headers相关信息
如何添加代理
全网爬虫如何建立
各种中间件的内容
分布式爬虫的原理以及案例
scrapy数据流
spiders 中需要有start_urls或者start_requests,生成初始的requests,发送给Engine处理
将Request放到sheduler中存储
当并发处理有空闲的时候,Engine就 ...
pip配置
pycharm用户看这里
很多小伙伴在ubuntu系统下,使用pip安装会很慢
以为安装源在国外服务器上面
今天小编就教大家配置成让pip默认从国内源中寻找安装包
首先Ctrl+Alt+T打开终端
进入家目录
1cd ~
在家目录中创建一个文件夹,命名为.pip
1mkdir .pip
进入目录,并创建一个名为pip.conf的文件
12cd .piptouch pip.conf
使用vim编辑文件内容,如下
1234[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host=mirrors.aliyun.com
使用wq保存并退出,即可
在以后使用pip安装python模块的时候,默认就从国内来进行安装了,赶紧去试一下吧!
附加:豆瓣源
1https://pypi.douban.com/simple