web基础
文章平均质量分 59
lowphper
这个作者很懒,什么都没留下…
展开
-
基础函数 获取网址协议、主机、端口与路径
我们现在需要解析一个网址的协议、主机、端口与路径。定义一个函数 parsed_url(),代码如下:def parsed_url(url): # 默认协议是http protocol = 'http' if url[:7] == 'http://': u = url.split('://')[1] elif url[:8] == 'https://'...原创 2018-02-11 15:41:53 · 721 阅读 · 0 评论 -
python web 数据库sql注入
大家都知道在数据库查询数据时,是被提示尽量少用字符串查询数据,而是用(?,?,?)的方式代替,这样就是为了防sql注入。那什么是sql注入呢,我们下面就演示一下:错误实例:sql = ''' SELECT id,username,email FROM users WHERE username="{}" and password...原创 2018-02-14 19:05:05 · 1012 阅读 · 1 评论 -
python web数据库mongodb的使用(附下载链接)
今天我们学习,数据库mongodb的使用,最下面有mongodb的下载链接。pip install pymongo首先安装pymongo,然后在需要用到的地方import pymongo#首先链接数据库,地址是localhost,端口27017client = pymongo.MongoClient("mongodb://localhost:27017")# 设置要使用的数据库,如果没有回自动创建...原创 2018-02-15 15:13:51 · 673 阅读 · 0 评论 -
Flask框架使用教程-运行第一步
今天,我们学习python web中的flask框架,当然首先是安装flask pip install flask然后用pycharm打开。新建项目里面的flask,自动创建,代码如下:from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello World...原创 2018-02-15 19:26:06 · 3499 阅读 · 1 评论 -
Flask使用教程-加载静态文件及显示前端页面
下面,我们说下,flask是怎样加载静态文件,以及显示前端页面。flask的静态文件,一般放在static目录下,前端页面放在templates下,目录结构如图:如图,1所示是静态文件所放的位置,2所示是前端页面放的地方下面,我们来加载及显示页面:后端,先引入显示模板函数render_templatefrom flask import Flask,render_template使用:@app.ro...原创 2018-02-15 22:03:29 · 29676 阅读 · 5 评论 -
SQL操作知识总结(一)
1-1,普通选择语句:SELECT name FROM Products ; 在Products表中检索name的列。一般与where连用。如:SELECT name FROM Products WHERE id = 1;,在Products表中检索列为id的的name,id =1的有几条数据,就显示几条数据。1-2,WHERE子句操作:WHERE还可以用其他操作符,比如‘>='(大于等...原创 2018-02-16 12:24:21 · 306 阅读 · 0 评论 -
SQL操作知识总结(二)
3-1通配符过滤--LIKESELECT prod_id, prod_nameFROM ProductsWHERE prod_name LIKE 'Fish%'; 关键词 "LIKE 'Fish%'",作用筛选以Fish开头的Products表中,显示prod_id和prod_name类似的“'%bean bag%'”就是筛选Products表中的prod_name字段的任意位置含有‘bean ...原创 2018-02-16 20:23:49 · 178 阅读 · 0 评论 -
SQL操作知识总结(三)
5-1,SQL函数很多情况,SQL语句都要用函数做些加工,这时候SQL函数就派上用场了,范例代码如下:SELECT vend_name, UPPER(vend_name) AS vend_name_upcaseFROM VendorsORDER BY vend_name; UPPER(vend_name)AS vend_name_upcase,就是把vend_name字段的字符串数据再命...原创 2018-02-17 20:10:03 · 140 阅读 · 0 评论 -
SQL操作知识总结(四)
6-2,组合聚集函数SELECT COUNT(*) AS num_items,MIN(prod_price) AS price_min,MAX(prod_price) AS price_max,AVG(prod_price) AS price_avgFROM Products; COUNT(*) AS num_items,返回字段数目,MIN() AS price_min,prod_p...原创 2018-02-18 17:08:53 · 201 阅读 · 0 评论 -
python web加盐算法保护用户密码
大家知道,在用户注册时,一般都要用算法加密来保护密码,这样密码只能重置,而不能修改密码。能够很好的保护用户信息安全。这里我们用sha256加盐保护密码,所谓加盐,是在用户密码加密后,可以再加一个指定的字符串,再次加密,这样,用户密码被破解的概率极低了,正如萧大所说,即使是加盐md5可能被破解,但想要破解一个用户的密码,也要十天半个月,花费极大,几乎不会有人这么干的,我们用sha256,更安全,好,...原创 2018-02-14 10:29:50 · 2059 阅读 · 0 评论 -
python web之jinja的使用
今天我们学习,jinja的使用,首先要安装jinja, pip install jinja安装完成后再需要的文件中,首先引入,form jinja2 import Environment,FileSystemLoader看代码:from jinja2 import Environment, FileSystemLoaderimport os.pathpath = '{}/templates/...原创 2018-02-13 19:08:43 · 1187 阅读 · 0 评论 -
简单的单元测试,以获取网址协议为例
这次我们写个简单的单元测试,以我上篇发的代码为例(代码看获取协议那篇):我们把获取协议的https的端口写成错误的: port_dict = { 'http': 800, 'https': 443, }然后看我们的测试函数:def test_url(): http = 'http' https = 'https' host = 'g.cn' p...原创 2018-02-11 16:14:26 · 163 阅读 · 0 评论 -
python web基础,把路径后参数化成字典形式
今天,我们把路径中的参数化成字典的形式:类似/ss?message=hello world&author=fei定义一个函数:get_path()def get_path(path): """ /ss?message=hello world&author=fei 返回如下字典形式 { 'message': 'hello world',...原创 2018-02-12 11:52:46 · 921 阅读 · 0 评论 -
python socket流程图
自己画了下socket的流程图,方便理解。先是客户端流程图:注意:response = s.resv(1023),这里的1023是只接收1023个字节,如果有需要可以用个 if break来接收所有字节。接下来是服务器端接收与返回数据:如图所示,需要注意的是服务器端返回数据,response = b'<h1>helloworld<h1>',在谷歌浏览器可能显示不出来,因为这...原创 2018-02-12 16:34:10 · 724 阅读 · 0 评论 -
python web自定义日志输出-写入文件
我们这里用的是自定义日志输出-把测试日志输出写入一个专门的文件。我们定义一个函数,log()import timedef log(*args, **kwargs): # time.time() 返回 unix time # 如何把 unix time 转换为普通人类可以看懂的格式呢? format = '%Y/%m/%d %H:%M:%S' value = t...原创 2018-02-12 19:16:00 · 994 阅读 · 1 评论 -
python web自建框架-显示前端
像Django中的return render(),实际上可以把render看成一个函数,里面有返回前端的函数。把header和body返回。我们可以自建一个函数templates(),让其读取body然后返回。def template(name): path = 'templates/' + name with open(path, 'r', encoding='utf-8') a...原创 2018-02-13 09:56:50 · 1107 阅读 · 0 评论 -
python web自制框架之接受url传递过来的参数
我们知道,在django里有个request,可以接收表单等前端传过来的数据,现在我们也做一个类似的功能。首先我们定义一个类class,然后初始化数据与定义保存参数的方法,如下:class Request(object): def __init__(self): self.method = 'GET' self.path = '' self....原创 2018-02-13 11:08:42 · 981 阅读 · 0 评论 -
python web自制框架之-完整服务端实现
今天我们做下服务端的完整实现,把路由与模型分开来。首先是run函数,实现接收请求与返回客户端数据1.def run(host='', port=3000): """ 启动服务器 """ # 初始化 socket 套路 log('start at', '{}:{}'.format(host, port)) with socket.socket...原创 2018-02-13 16:01:58 · 636 阅读 · 1 评论 -
python web基础之加载静态文件
在web运行中很重要的一个功能就是加载静态文件,在django中可能已经给我们设置好了,我们只要直接把模板文件放在templates就好了,但是你知道在基础中,像图片是怎么加载以及找到相应位置的吗?下面我们来看看。在上篇文章中我把,静态文件的路径单独出来在这里说说了,正好说说全局变量request的作用。首先,我们写前端图片的路径:<img src="/static?file=1.gif"/...原创 2018-02-13 16:38:08 · 2571 阅读 · 0 评论 -
Python中的可变与不可变类型
首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型。可变数据类型:列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。用一句话来概括上述过程就是:“python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来...转载 2018-02-18 17:49:15 · 2667 阅读 · 0 评论