简易人事管理系统—Flask网站制作(11)
优采云 发布时间: 2022-06-08 08:20简易人事管理系统—Flask网站制作(11)
新书
速递
吴老的java版《selenium webdriver 实战宝典》和python版《selenium Webdriver 3.0 自动化测试框架实战指南》出版了,代码拿来就能用。
文 |远山近海
Flask网站制作框架
快速制作网站就是这么容易!
安装:pip install Flask
简易人事管理系统(下)db.py:
# coding=utf-8import pymysqlimport timefrom datetime import timedelta,dateimport locale<br />locale.setlocale(locale.LC_CTYPE, 'chinese')def date_time_chinese(): u"returnsthe current time string,format for YYYY年mm月dd日 HH时MM分SS秒" returntime.strftime("%Y年%m月%d日,%H时%M分%S秒",time.localtime())<br />def get_data(): db = pymysql.connect("localhost", "tester1", "123456", "testdb") cursor = db.cursor() # 创建游标 select_sql="select* from person" cursor.execute(select_sql) resultall = cursor.fetchall() cursor.close() return resultall<br />def creat_data(name,sex,age,height,job,facelevel): db = pymysql.connect("localhost", "tester1", "123456", "testdb") cursor = db.cursor() # 创建游标 insert_sql="insertinto person(name, sex, age, Height_cm, Job, FaceaLevel, CreatTime)values(%s,%s,%s,%s,%s,%s,%s)" cursor.execute(insert_sql,(name,sex,age,height,job,facelevel,date_time_chinese())) db.commit() cursor.close() return True<br />def get_one_data(id): db = pymysql.connect("localhost", "tester1", "123456", "testdb") cursor = db.cursor() # 创建游标 seletc_sql="select* from person where id=%s" cursor.execute(seletc_sql,(id)) resultone = cursor.fetchone() cursor.close() return resultone<br />def edit_data(id, name, sex, age, height, job,facelevel): db = pymysql.connect("localhost", "tester1", "123456", "testdb") cursor = db.cursor() # 创建游标 updata_sql="updateperson set name=%s,sex=%s,age=%s,Height_cm=%s,job=%s,FaceaLevel=%s,CreatTime=%swhere id=%s" cursor.execute(updata_sql,(name, sex, age, height, job, facelevel, date_time_chinese(),id)) db.commit() cursor.close() return True<br />def search(searchstring): db = pymysql.connect("localhost", "tester1", "123456", "testdb") cursor = db.cursor() # 创建游标 select_sql="select* from person where name like '%"+searchstring+"%'" cursor.execute(select_sql) resultone = cursor.fetchall() cursor.close() return resultone<br />def delete_data(id): db = pymysql.connect("localhost", "tester1", "123456", "testdb") cursor = db.cursor() # 创建游标 delete_sql="deletefrom person where id=%s" cursor.execute(delete_sql,(id)) db.commit() cursor.close() return True<br />if __name__ == '__main__': print(get_data()) print(get_one_data(5)) print(edit_data("6","李玉","女","29","166","前端工程师","100")) print(delete_data(23)) print(search("老师"))
用于对数据库进行各种增删改查操作all_judge.py:
# coding=utf-8<br />def CreatAndEdit_judge(name,sex,age,height,job,facelevel): ErrorMessage_tuple = (("姓名", name), ("性别", sex), ("年龄", age), ("身高", height), ("工作", job), ("颜值", facelevel)) ErrorMessage = "" for i in ErrorMessage_tuple: if i[1]== "" or i[1]== None: ErrorMessage += i[0] +"不能为空;" returnErrorMessage
做所有判断,实际只做了一个判断,即对输入的数据是否为空进行了判断base.html:
简易人事管理系统 简易人事管理系统<br /> {% block content %}<br /> {% endblock %}
该页面是基础页面,页面中有title和该系统的标题,这两个内容是其他所有页面都需要的,所以只在基础页面里写一遍,其他所有页面都继承于它login.html:
{% extends 'base.html' %}{% block content %} {% if ErrorMessage %} {{ErrorMessage}} h3 {color: red;} {% endif %}<br /> {{form.username.label}} {{form.username}} {{form.password.label}} {{form.password}} {% endblock %}
登录页面,相关视图函数已为它传递了ErrorMessage和formperson_show.html
{% extends 'base.html' %}{% block content %} {{form.searchstring.label}} {{form.searchstring}} <br />新建人员<br /> 序号 姓名 性别 年龄 身高 职业 颜值 创建时间 操作 {% for ir in AllResult_tuple %} {{loop.index}} {{ir[1]}} {{ir[2]}} {{ir[3]}} {{ir[4]}} {{ir[5]}} {{ir[6]}} {{ir[7]}} 修改 删除 {% endfor %}<br />{% endblock %}
所有人员的数据展示页面注意:这里的action=后面的网址是带有../的,因为地址后面通常会跟有后缀,所以加上../代表其父地址person_show_search.html
{% extends 'base.html' %}{% block content %} {{form.searchstring.label}} {{form.searchstring}} <br />新建人员<br /> 序号 姓名 性别 年龄 身高 职业 颜值 创建时间 操作 {% for ir in AllResult_tuple %} {{loop.index}} {{ir[1]}} {{ir[2]}} {{ir[3]}} {{ir[4]}} {{ir[5]}} {{ir[6]}} {{ir[7]}} 修改 删除 {% endfor %}<br />{% endblock %}
当在搜索框里输入了关键字并点击了查询按钮后所跳转至的页面,该页面与person_show.html几乎一样,唯一的区别就是它的地址不需要传id,之所以单写,在前面已加粗说过,是为了尽量保证一个视图函数只做一件事,这里不再赘述creat.html
{% extends 'base.html' %}{% block content %} {% if ErrorMessage %} {{ErrorMessage}} h3 {color: red;} {% endif %} {{form.name.label}} {{form.name}} {{form.sex.label}} {{form.sex}} {{form.age.label}} {{form.age}} {{form.height.label}} {{form.height}} {{form.job.label}} {{form.job}} {{form.facelevel.label}} {{form.facelevel}} {% endblock %}
创建页面,该页面中接收了ErrorMessage和form
edit.html
{% extends 'base.html' %}{% block content %} {% if ErrorMessage %} {{ErrorMessage}} h3 {color: red;} {% endif %} {{form.name.label}} {{form.name}} {{form.sex.label}} {{form.sex}} {{form.age.label}} {{form.age}} {{form.height.label}} {{form.height}} {{form.job.label}} {{form.job}} {{form.facelevel.label}} {{form.facelevel}} {% endblock %}
编辑页面,它同样接收了ErrorMessage和form而与creat.html页面不同的是,它需要把被编辑数据的原始字段值展现出来再次强调,在模型类中下拉框要这样写choices=[("男","男"),("女","女")],不要这样写choices=[("1","男"),("2","女")],否则页面的原始数据展示就只能展示1或2,而不是男或女delete.html
{% extends 'base.html' %}{% block content %} 您要删除的数据是: 姓名 性别 年龄 身高 职业 颜值 创建时间 {{OneResult_tuple[1]}} {{OneResult_tuple[2]}} {{OneResult_tuple[3]}} {{OneResult_tuple[4]}} {{OneResult_tuple[5]}} {{OneResult_tuple[6]}} {{OneResult_tuple[7]}} 确定删除吗? 确定删除 放弃删除{% endblock %}
删除页面,该页面与编辑页面相似,都需要把被编辑数据的原始值展现出来,而不同的是,编辑页面是用输入元素展现的,你可以直接在输入元素里进行输入,而删除页面没有输入元素,只是把欲被删除数据的字段值展现在列表里即可。
一定要实战呀!点击链接直达或公众号内回复“2”
招聘QQ群:203715128
在看点这里