Flask 是一个用于 Python 的微型网络开发框架,可以用于快速的搭建一个小型的网站。

我的搜索引擎:http://www.abelkhan.com 就是基于flask开发

一个flask的Hello World

from flask import Flask
app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World!' if __name__ == '__main__':
app.run()

其中,app = Flask(__name__)创建的app对象就是我们的网站应用的实例。

可以看到,Flask通过@修饰符,app.route实现了对url请求到函数接口的路由。

也就是说,你如果在浏览器请求http://url.com/,通过app.route的作用,最终就会调用到hello_world。

使用flask做文件服务器,和nginx不同,flask不能直接提供对文件的路由,

而是需要用app.route实现对url的路由

@app.route('/JSONError.js')
def file_JSONError():
from io import BytesIO
try:
return Response(BytesIO(globalv.res_data['JSONError.js']), mimetype='js')
except:
traceback.print_exc()

并在对应得函数中,返回对应得文件内容。

flask中的Response,就是对于的http请求中的的Request和Response

包含如下信息:

status 状态码,元数据

status_code 只包含 code 的 status

headers 头,元数据

mimetype 去掉 charset 的 content type,如 application/json

data body,元数据

我们通过Response即可返回文件数据

处理AJAX请求,也就是来至javascript的post的请求:

js的请求如下:

    table_regchange.onclick=function() {
var params = {"sid":sid};
JSONRequest.post("http://abelkhan.com/changecheck", params,
function (requestNumber, value, exception){
table_regcheck.innerHTML = value["check"];
});
};

后端的响应代码:

@app.route('/changecheck', methods=['POST'])
def changecheck():
try:
from io import BytesIO
r = on_get_check(request.get_json())
rsp = Response(BytesIO(json.dumps(r)), mimetype='text/json')
return rsp
except:
traceback.print_exc()

这里是前端请求更换验证码,然后服务器返回新的验证码的代码,

如此即可完成请求-响应的逻辑流程。

开源的搜索引擎:http://www.abelkhan.com/
欢迎大家围观!

使用python编写了后端网络爬和前端网站

项目地址:http://www.abelkhan.com/
向我们提出意见:http://www.abelkhan.com/guestbook/
对项目进行捐助:http://www.abelkhan.com/collection/
代码托管地址如下:https://github.com/qianqians/websearch欢迎大家参与

使用flask开发网站后端的更多相关文章

  1. 基于Flask开发网站 -- 前端Ajax异步上传文件到后台

    大家好,我是辰哥~ 辰哥最近利用空闲时间在写一个在线可视化平台,过程中也觉得一些技术还是比较有意思的,所以就以模块化的形式分享出来.如:从网页界面(前端)上传文件到服务器(后端). 放一下该模块的界面 ...

  2. 循序渐进BootstrapVue,开发公司门户网站(6)--- 门户网站后端内容管理

    我们在做门户网站的时候,如果网站的内容可以动态从后端进行管理,那么调整网站内容就非常方便,有时候如一些公司新闻.产品信息.轮播广告信息等都需要动态调整的,有一个方便的后端内容管理是非常方便的.本篇随笔 ...

  3. Django基础-04篇 Django开发前后端联动

    1. 写views views.py代码块 1.在前端以/article/{{ article.id }}这种方式请求后台, 参数配置在urls.py中path('category/<int:i ...

  4. 思考:用开发移动app的观念来开发网站

    首先祝大家新年快乐.万事如意. 开发网站程序也有一些年头了,从最初的静态HTML+ JS,到后来的WebForm,然后过渡到现在的MVC. 由于最近做一些技术调研,也接触了很多移动开发,iOS和And ...

  5. 使用 mock.js 让前端开发与后端独立

    直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  6. 用flask开发个人博客(4)—— flask中4种全局变量

    https://blog.csdn.net/hyman_c/article/details/53512109 一  current_app current_app代表当前的flask程序实例,使用时需 ...

  7. Flask开发成语接龙游戏,闲来无事手机玩玩自己写的游戏吧!

    英语单词学习应用 周五发布的文章Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署发布后,看到喜欢的人比较多.本来周末打算照着扇贝/极光单词,写一个英语单词自测工具.但苦 ...

  8. Flask开发系列之Web表单

    Flask开发系列之Web表单 简单示例 from flask import Flask, request, render_template app = Flask(__name__) @app.ro ...

  9. Flask开发系列之Flask+redis实现IP代理池

    Flask开发系列之Flask+redis实现IP代理池 代理池的要求 多站抓取,异步检测:多站抓取:指的是我们需要从各大免费的ip代理网站,把他们公开的一些免费代理抓取下来:一步检测指的是:把这些代 ...

随机推荐

  1. jsp自定义函数库

      步骤如下: 1.创建一个函数库类,里面的方法就是标签函数库要调用的方法(必须是静态方法) package com.mdd.tag; public class JiSuan {     //两个数相 ...

  2. jqPaginator 项目中做分页的应用技巧

    最近做后台管理系统,分页用到的不少,项目中其实已经有分页功能的组件但是不够高度自定义,于是就找到了 jqPaginator 高度自定义的Html结构 初始化引用如下: $("#paginat ...

  3. ZooKeeper实践:(1)配置管理

    一. 前言     配置是每个程序不可或缺的一部分,配置有多重方式:xml.ini.property.database等等,从最初的单机环境到现在的分布式环境. 1. 以文件的格式存储配置,修改任何都 ...

  4. 解决ssh或ftp下root用户认证失败问题

    问题:当连接ssh远程终端或使用ftp方式进行文件传输时,使用普通用户可以进行远程登录,但使用root用户则认证失败,提示密码错误.而我们在普通用户登录下,su - root,验证密码,是可以正常切换 ...

  5. Linux主机通过代理服务器进行网络连接

    公司的不允许访问外网,但是访问外网需要配置代理,window配置均好配置,在Linux的命令行底下,一般的程序都是使用http_proxy和ftp_proxy这两个环境变量来获得代理设置的.1.在/e ...

  6. bootstrap学习笔记之导航条基础

    导航条基础 导航条(navbar)和上一节介绍的导航(nav),就相差一个字,多了一个"条"字.其实在Bootstrap框架中他们还是明显的区别.在导航条(navbar)中有一个背 ...

  7. Day1-while and for/break and continue

    一.while and for 需求:猜年龄,输错三次退出,猜对退出 解决1: age_of_oldboy = 56count = 0while True: if count == 3: print( ...

  8. 刨根究底字符编码之七——ANSI编码与代码页(Code Page)

    ANSI编码与代码页(Code Page) 一.ANSI编码 1. 如前所述,在全世界所有国家和民族的文字符号统一编码的Unicode编码方案问世之前,各个国家.民族为了用计算机记录并显示自己的字符, ...

  9. R语言学习路线和常用数据挖掘包(转)

    对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来.当然,这不是最好的学习方式,最好的方式是——看书.目前,市面上介绍R语言的 ...

  10. jquery中html、text、val回调函数

    先扫盲: 摘自菜鸟教程:jQuery 方法:text().html() 以及 val()拥有回调函数. 回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值.然后以函数新值返回您希望使 ...