咯咯咯咯咯。。。。(已出过链接文章)
看图:准备所需的数据
# 自动随机生成坐标
def FrameOfReference(zjy_longitude=None, zjy_latitude=None, radius=None):
radius_in_degrees = radius / 111300
coordinates_u = float(random.uniform(0.0, 1.0))
coordinates_v = float(random.uniform(0.0, 1.0))
coordinates_w = radius_in_degrees * math.sqrt(coordinates_u)
coordinates_t = 2 * math.pi * coordinates_v
coordinates_x = coordinates_w * math.cos(coordinates_t)
coordinates_y = coordinates_w * math.sin(coordinates_t)
longitude = coordinates_y + zjy_longitude
latitude = coordinates_x + zjy_latitude
# 这里是想保留6位小数
precision_data = '%.6f' % longitude
latitude_data = '%.6f' % latitude
return precision_data, latitude_data
longitude, latitude = FrameOfReference(zjy_latitude=120.7, zjy_longitude=30, radius=1000000)
print(longitude, latitude)
# 生成当前的时间
currenttime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'''三个zjy_id为相同id,这里要提前把其他的表的ID查出,并提出来(转成列表以便于等下插入数据的时候用)'''
import datetime
import pymysql
import random
import math
class a(object):
def FrameOfReference(self, zjy_longitude=None, zjy_latitude=None, radius=None):
radius_in_degrees = radius / 111300
coordinates_u = float(random.uniform(0.0, 1.0))
coordinates_v = float(random.uniform(0.0, 1.0))
coordinates_w = radius_in_degrees * math.sqrt(coordinates_u)
coordinates_t = 2 * math.pi * coordinates_v
coordinates_x = coordinates_w * math.cos(coordinates_t)
coordinates_y = coordinates_w * math.sin(coordinates_t)
longitude = coordinates_y + zjy_longitude
latitude = coordinates_x + zjy_latitude
# 这里是想保留6位小数
precision_data = '%.6f' % longitude
latitude_data = '%.6f' % latitude
return precision_data, latitude_data
def post(self, charset=None, database=None, port=None, password=None, user=None, host=None):
open_sql1 = pymysql.connect(host1=host,
user1=user,
password1=password,
port1=port,
database1=database,
charset1=charset)
# 开启mysql的游标功能,创建一个游标对象
cur = open_sql1.cursor()
if not cur:
raise Exception("数据库连接失败!")
a = 0
# 这里是循环一万次
for s in range(10000):
# 这里是s每循环一次,这里循环一万次
for y in range(10000):
# 每次随机生成坐标
longitude, latitude = self.FrameOfReference(zjy_longitude=120.7, zjy_latitude=30, radius=1000000)
# 每次获取当前时间
currenttime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# 准备插入的语句
'''说明:
a == 表格中的id
user_id[a] == 上个sql查询的用户id(或自己可设置,不需要读取其他表)
longitude == 随机生成的精度
latitude == 随机生成的纬度
currenttime == 当前时间的年月日时分秒,格式如:2020-01-09 11:03:06'''
sql = "INSERT INTO zjy_applet_user_location(id, zjy_applet_user_id, zjy_longitude, zjy_latitude, " \
"zjy_create_people_id, zjy_modify_people_id, zjy_create_time, zjy_modify_time, zjy_deleted) " \
"VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '0')" % (
a, user_id[a], longitude, latitude, user_id[a], user_id[a], currenttime, currenttime)
# 执行sql
cur.execute(sql)
# 提交到数据库执行
open_sql1.commit()
a += 1
# 关闭数据库
open_sql1.close()
if __name__ == "__main__":
a().post(charset="utf8", database="连接的库名", port="端口号", password="数据库的密码", user="数据库账号", host="数据库的ip")
这就是全部的插入数据的代码!