这节课我们主要讲解的是使用Django框架连接数据库mysql,收到后台私信的朋友说让我简单说一下Django框架,这里先为大家简单介绍一下Django框架。
Django和flask是Python的两个主流网站开发工具,其中Django采用MTV设计模式,其中M代表models模型,T代表templates模板,V代表view视图。Django遵循MVC设计模式的框架,MVC是Model、View、Controller三个单词的简写,分别代表模型、视图、控制器。Django的设计非常优美:
- 对象关系的映射:ORM,ORM可以使用python设计mysql的数据表字段,可以在python直接使用命令在mysql数据库中创建数据表。
- url的分派:可以直接使用正则表达式匹配网页路由
- 模板系统:可以在框架中定义不同的子应用
- 表单处理:可以方便的生产各种表单
- cache和session:方便缓存和保持用户会话
Django作为python的主流网站开发框架,拥有非常多的优势。接下来我们开始正题。
(一)在子应用的models.py中设置数据表字段
字段名称包括id,教师名称,教师所在院系,文章题目,文章作者,来源,发表日期,引用数量和下载数量。
(二)进行数据迁移
使用python manage.py makemigrations和python manage.py migrate
数据迁移后Django会连接mysql并自动创建好数据表和字段,这就是Django ORM数据对象映射的优势。
(三)将数据导入mysql
这里我准备了一段代码,运行这段代码可以将数据导入数据库。
代码语言:javascript复制def get_conn():
db = pymysql.connect(host="127.0.0.1", port=3306,
user="", password="",
db="",charset="utf8")
return db
def insert(cur, sql, args):
try:
cur.execute(sql, args)
except Exception as e:
print(e)
#db.rollback()
def read_csv_to_mysql(filename):
with codecs.open(filename=filename, mode='r', encoding='utf-8') as f:
reader = csv.reader(f)
head = next(reader)
print(head)
conn = get_conn()
cur = conn.cursor()
sql = 'insert into article values(%s,%s,%s,%s,%s,%s,%s,%s,%s)'
for item in reader:
# if item[1] is None or item[1] == '': # item[1]作为唯一键,不能为null
# continue
args = tuple(item)
print(args)
insert(cur, sql=sql, args=args)
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
read_csv_to_mysql(r"/Users/weiboning/Desktop/teacherarticle/总数据.csv")
(四)在后端视图函数中获取数据库数据
在view.py定义后端函数获取数据库的数据
这里get获取到所有的数据,使用post查询数据
(五)在前端html代码中修改获取后端获取数据
jinja2模板使用for循环可以遍历所有的数据。
(六)最终效果
这就是数据库中所有的数据和查询数据后返回的结果。
好了,就到这里了,大家有什么问题可以后台私聊我。非常感谢。