Python web框架flask的开发

在windows10下搭建Python3的开发环境:

1.下载Anaconda3,下载地址百度,根据自己的windows环境下载32-bit或者64-bit

2.安装Anaconda3,选择完安装路径之后,在第二步骤的时候,有两个选项:如图


第一个选项是添加系统path环境变量,第二个将Python3.6作为idea的默认开发环境,两个都打勾。

3.安装完成之后配置pycharm的环境,如图:


3.配置好之后在cmd输入Python之后,如图,表示python的环境配置成功:


下面就可以开发Python了。

关于Python3.6与Anaconda3的区别自行百度

4.flask是Python开发的web框架,与Java的spring框架是一个道理。如何使用flask,它的api:

    http://docs.jinkan.org/docs/flask/

下面是一个简单的flask的web程序

server.py

from gevent.wsgi import WSGIServer

from tornado.httpserver import HTTPServer

from SnowNLP_JS import app(这段代码是引入了SnowNLP_JS.py 作为一个app的变量)

http_server = WSGIServer(('127.0.0.1', 5000), app)

http_server.serve_forever()

SnowNLP_JS.py

# -*- coding: utf-8 -*-

from snownlp import SnowNLP

import json

from flask import Flask, render_template, request, jsonify,Response

app = Flask(__name__)

# @app.route('/')

@app.route('/getfunc', methods=['POST', 'GET'])

def getfunc():

#data = json.loads(request.form.get('data'))

# resp = Response(data)

#Response.headers['Access-Control-Allow-Origin'] = '*'

# data = json.loads(request.get_json())

# story_data = json.loads(request.get_data().decode('utf-8'))

#context = data['lesson']

jsonp_callback = request.args.get('callback', 'jsonpCallback1')

context = request.values['content']

print(context)

s = SnowNLP(context)

'''

s = SnowNLP("是不是还不是就这样子了,完全不行,我觉得这车完全不行!")

'''

arry = []

'''' for sentence in s.sentences:

#print(sentence)

'''

'''

s0 = SnowNLP(s.sentences[0])

s1 = SnowNLP(s.sentences[1])

s2 = SnowNLP(s.sentences[2])

s3 = SnowNLP(s.sentences[3])

s4 = SnowNLP(s.sentences[4])

'''

_snownlpNum = 0

for k in s.sentences:

print(k)

_snownlpvalue = SnowNLP(k)

print(_snownlpvalue.sentiments)

arry.insert(_snownlpNum, _snownlpvalue.sentiments)

_snownlpNum + 1

'''

print(s0.sentiments)

print(s1.sentiments)

print(s2.sentiments)

print(s3.sentiments)

print(s4.sentiments)

arry.insert(0,s0.sentiments)

arry.insert(1,s1.sentiments)

arry.insert(2,s2.sentiments)

arry.insert(3,s3.sentiments)

arry.insert(4,s4.sentiments)

print(arry)

s2 = SnowNLP(sentence[1])

print("s2:"+s2.sentiments)

'''

positive = []

negative = []

value = 0

value1 = 0

num = 0

for i in arry:

# print(i)

if (i < 0.5):

print("负面词:" + str(i))

value += i

positive.insert(num, i)

num + 1

elif (i > 0.5):

print("正面词:" + str(i))

value1 += i

negative.insert(num, i)

num + 1

# ("负面词结果:" + str(value / 2))

# print("正面词结果:" + str(value1 / 3))

# print("正面词结果1:" + str((0.8342 + 0.8584 + 0.6251) / 3))

# print("负面词结果1:" + str((0.3280 + 0.3281) / 2))

print(negative)

print(positive.__len__())

print(positive)

# _result_positive = 0

# np.positive()

_result_positive = sum(positive)

_result_negative = sum(negative)

'''

print(_result_positive/positive.__len__())

print(_result_negative/negative.__len__())

print(_result_positive)

print(_result_negative)

'''

print(_result_positive / (_result_positive + _result_negative))

print(_result_negative / (_result_positive + _result_negative))

'''

_data_result1 = [{"_result_positive": _result_positive / (_result_positive + _result_negative),

"_result_negative": _result_negative / (_result_positive + _result_negative)},

{"_result_positive_len": positive.__len__(),

"_result_negative_len": negative.__len__()}]

_data_result = {"_result_positive":_result_positive/(_result_positive+_result_negative),"_result_negative":_result_negative/(_result_positive+_result_negative)}

'''

jsondate = {'_result_positive':_result_positive / (_result_positive + _result_negative),

'_result_negative':_result_negative / (_result_positive + _result_negative),

'_result_positive_len':positive.__len__(),

'_result_negative_len':negative.__len__()}

return Response(

"%s(%s);" % (jsonp_callback, json.dumps({'ok': True, 'data': jsondate})),

mimetype="text/javascript"

)

# return jsondate

#print(getfunc())

'''

@app.route('/testajax')

def testAjax(request):

func = request.GET.get('callback')

content = '%s(100000)' % (func,)

return HttpResponse(content)

@app.route('/demo', methods=['POST'])

def home():

data = json.loads(request.form.get('data'))

result_json = json.dumps(data)

# Response

resp = Response(result_json)

resp.headers['Access-Control-Allow-Origin'] = '*'

return resp

def request_ajax_url(url, body, referer=None, cookie=None, **headers):

import urllib

req = urllib2.Request(url)

req.add_header('Content-Type', 'application/json')

req.add_header('X-Requested-With','XMLHttpRequest')

if cookie:

req.add_header('Cookie', cookie)

if referer:

req.add_header('Referer', referer)

if headers:

for k in headers.keys():

req.add_header(k, headers[k])

postBody = json.dumps(body)

response = urllib2.urlopen(req, postBody)

if response:

return response

@app.route('/run')

def run():

import time

"use username:xfkxfk; use password:123456"

login_url = 'http://www.xx.com/member/Login.aspx'

login_body = {"action":"login","UserName":"xfkxfk","Password":"123456","AutomaticLogin":False}

login_referer = "http://www.xx.com/member/Login.aspx?ReturnUrl=aHR0cDovL3d3dy5sdXNlbi5jb20vRGVmYXVsdC5hc3B4"

url = 'http://www.xx.com/Member/MobileValidate.aspx'

referer = "http://www.xx.com/Member/ModifyMobileValidate.aspx"

headers = {}

response = request_ajax_url(login_url, login_body, login_referer)

if response.read() == "1":

print(" Login Success !!!")

if response.headers.has_key('set-cookie'):

set_cookie = response.headers['set-cookie']

else :

print (" Get set-cookie Failed !!! May Send Messages Failed ~~~")

if len(sys.argv) < 3:

print ("\nUsage: python " + sys.argv[0] + "mobile_number" + "count\n")

sys.exit()

mobile_number = sys.argv[1]

count = sys.argv[2]

body = {"action":"GetValidateCode","Mobile":mobile_number}

i=0

while i < int(count):

response = request_ajax_url(url,body,referer,set_cookie)

i= i+1

if response.read() == "发送成功":

print(" Send " + count + " Messages To " + mobile_number + " !!!")

def test():

import json

from flask import jsonify, Response, json

data = []  # or others

return jsonify(ok=True, data=data)

jsonp_callback = request.args.get('callback', '')

if jsonp_callback:

return Response(

"%s(%s);" % (jsonp_callback, json.dumps({'ok': True, 'data': data})),

mimetype="text/javascript"

)

return ok_jsonify(data)

'''

if __name__ == "__main__":

app.run()

以上的方法实现了情感词分析的功能。同时实现了跨域的问题。

5.请求方式

http://127.0.0.1:5000/getfunc

参数:json格式的数据,{content:"你好!"}

6.如果出现模块不存在后者是未定义的错误,需要安装该模块,命令:

pip install 模块名

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容