django新手村14-----添加资料

之前在添加资料时,都是手动去资料库添加,这样很不合理,也没有效率

如果只是为了方便,当然可以使用以下的方法

def create(request):

    for i in range(5):
        student = Student()
        student.name = '王'+str(i)
        student.age = i


        student.save()

    return HttpResponse('create_suc')

但今天资料在excel里面,该怎麽办呢

https://ithelp.ithome.com.tw/upload/images/20220102/20135895M3vzeSDyrA.jpg

在有外键的情况下,不能直接给值,还是要透过外键物件
一班来说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吧)
https://ithelp.ithome.com.tw/upload/images/20220102/20135895aJ5owpdCGi.jpg

这边就不再放注册该怎麽做了,只看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)

我的注册完成後有自动导向到原本页面,所以可以一直跑


<<:  django新手村13-----路由规则

>>:  D24. 学习基础C、C++语言

Day26-JDK可视化监控工具:visualVM(二)

前言 上篇介绍了visualVM的安装,这篇就要来介绍如何使用 范例我们拿Day23-JDK可视化监...

【Day 22】Class 类别

前言 在学习程序语言的过程中,应该都有听过物件导向程序设计(Object-oriented prog...

Git l

所谓的Git就是版本控制Github就是云端的概念 Git flow Github flow 可以搭...

【D27】熟练一下厨具-bid and ask #2:选择权价差单如何组成

前言 介绍了什麽是bid and ask,也说明了选择权这个食材,那厨具和食材要怎麽组合呢? 这边会...

在GCP VM上开发Python

订阅patreon即可看到更多文章 https://www.patreon.com/wade3c ...