之前在添加资料时,都是手动去资料库添加,这样很不合理,也没有效率
如果只是为了方便,当然可以使用以下的方法
def create(request):
for i in range(5):
student = Student()
student.name = '王'+str(i)
student.age = i
student.save()
return HttpResponse('create_suc')
但今天资料在excel里面,该怎麽办呢
在有外键的情况下,不能直接给值,还是要透过外键物件
一班来说openpyxl应改可以用相对路径,但不知道为什麽在django下只能用绝对路径
def create(request):
import openpyxl
wb = openpyxl.load_workbook('D:/create.xlsx')
wb.active = 0
ws = wb.active
num = 1
for row in ws:
if num == 1:
num += 1
continue
name = ws['A' + str(num)].value
age = ws['B' + str(num)].value
classroom = ws['C' + str(num)].value
student = Student()
student.name = name
student.age = age
student.classroom = ClassRoom.objects.filter(name=classroom).first()
student.save()
num += 1
return HttpResponse('create_suc')
如果有注册页面,也可以尝试用selenium(後端一定要会selenium吧)
这边就不再放注册该怎麽做了,只看selenium程序码
chromedriver上网查符合自己版本的,下载放到同一层
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import openpyxl
options = Options()
options.add_argument("--disable-notifications")
# 启动 chrome driver
driver = webdriver.Chrome('chromedriver', options=options)
# 指定开启网址
driver.get("http://127.0.0.1:8000/app/register/")
wb = openpyxl.load_workbook('D:/create.xlsx')
wb.active = 0
ws = wb.active
num = 1
for row in ws:
if num == 1:
num += 1
continue
name = ws['A' + str(num)].value
age = ws['B' + str(num)].value
classroom = ws['C' + str(num)].value
driver.find_element_by_name('name').send_keys(name)
driver.find_element_by_name('age').send_keys(age)
driver.find_element_by_name('classroom').send_keys(classroom)
driver.find_element_by_tag_name("button").click()
time.sleep(2)
我的注册完成後有自动导向到原本页面,所以可以一直跑
前言 上篇介绍了visualVM的安装,这篇就要来介绍如何使用 范例我们拿Day23-JDK可视化监...
前言 在学习程序语言的过程中,应该都有听过物件导向程序设计(Object-oriented prog...
所谓的Git就是版本控制Github就是云端的概念 Git flow Github flow 可以搭...
前言 介绍了什麽是bid and ask,也说明了选择权这个食材,那厨具和食材要怎麽组合呢? 这边会...
订阅patreon即可看到更多文章 https://www.patreon.com/wade3c ...