小编gur*_*uri的帖子

RuntimeError:在应用程序上下文之外工作

app.py

from flask import Flask, render_template, request,jsonify,json,g
import mysql.connector

app = Flask(__name__)
**class TestMySQL():**
  @app.before_request
  def before_request():
    try:
       g.db = mysql.connector.connect(user='root', password='root', database='mysql')
    except mysql.connector.errors.Error as err:
      resp = jsonify({'status': 500, 'error': "Error:{}".format(err)})
      resp.status_code = 500
      return resp
@app.route('/')
def input_info(self):
    try:     
        cursor = g.db.cursor()
        cursor.execute ('CREATE TABLE IF NOT EXISTS testmysql (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(40) NOT NULL, \
                 email VARCHAR(40) NOT NULL UNIQUE)')
        cursor.close()
Run Code Online (Sandbox Code Playgroud)

test.py

from app import *
class Test(unittest.TestCase):         
 def test_connection1(self):  
   with …
Run Code Online (Sandbox Code Playgroud)

python mysql werkzeug flask flask-restful

38
推荐指数
3
解决办法
5万
查看次数

Python:单元测试抛出<Response stream [200 OK]>而不是实际输出

from flask import jsonify

@app.route('/urlinfo/1/<path:URL>', methods=['GET']) 
def search(URL): 
  if something:
     a=dict(message="everything is good"
     resp=jsonify(a)
     return resp
  else:
     a=dict(error="problem")
     return jsonify(a)
Run Code Online (Sandbox Code Playgroud)

我正在使用它

 curl  http://127.0.0.1:5000/urlinfo/1/'https://www.youtube.com/'
Run Code Online (Sandbox Code Playgroud)

它以json格式返回所需的输出.

我为它写了一个Unittest

 import unittest

 def test_search_non_malicious_url(self):
    #pass safe URL and test web service does not block it
    new_URL= "183.434.44.44:90"
    expected= {
                  "message": "Everything is good"
             }    
    self.assertEqual("a",search(new_URL))
Run Code Online (Sandbox Code Playgroud)

单元测试失败,因为而不是返回字符串("消息":"一切都很好"),search(new_URL)返回响应流[200 OK]

如何将输出作为字典返回{"message": "Everything is good"}

python unit-testing flask

6
推荐指数
1
解决办法
1207
查看次数

从URL python中删除HTTP和WWW

url1='www.google.com'
url2='http://www.google.com'
url3='http://google.com'
url4='www.google'
url5='http://www.google.com/images'
url6='https://www.youtube.com/watch?v=6RB89BOxaYY
Run Code Online (Sandbox Code Playgroud)

如何 从Python中删除http(s)和删除wwwURL?

python url

5
推荐指数
2
解决办法
5870
查看次数

如何从database_url解析mysql数据库名称

DATABASE_URL- MYSQL://用户名:password @ host:port/database_name

错误:database_name没有属性.

if 'DATABASE_URL' in os.environ:
  url = urlparse(os.getenv['DATABASE_URL'])
 g['db'] = mysql.connector.connect(user=url.username,password=url.password, host=url.hostname ,port=url.port,path=url.path[1:])
Run Code Online (Sandbox Code Playgroud)

python mysql database-connection urlparse

2
推荐指数
2
解决办法
3343
查看次数