实验12基于Django框架Web开发之数据库操作.docx

上传人:b****1 文档编号:2843610 上传时间:2023-05-04 格式:DOCX 页数:12 大小:1,013.26KB
下载 相关 举报
实验12基于Django框架Web开发之数据库操作.docx_第1页
第1页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第2页
第2页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第3页
第3页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第4页
第4页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第5页
第5页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第6页
第6页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第7页
第7页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第8页
第8页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第9页
第9页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第10页
第10页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第11页
第11页 / 共12页
实验12基于Django框架Web开发之数据库操作.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验12基于Django框架Web开发之数据库操作.docx

《实验12基于Django框架Web开发之数据库操作.docx》由会员分享,可在线阅读,更多相关《实验12基于Django框架Web开发之数据库操作.docx(12页珍藏版)》请在冰点文库上搜索。

实验12基于Django框架Web开发之数据库操作.docx

实验12基于Django框架Web开发之数据库操作

web开发实验2

【实验名称】

Web开发实验2

【实验目的】

学会使用重量级(high-level)python框架Django来完成pythonweb开发.

【实验要求】

要求本实验结束时,学生能熟悉操作模版、连接mysql数据库以及使用API进行数据库的增加、删除、修改等操作。

【知识准备】

1.Python的开发环境

2.Python的基础知识

【实验设备】

安装好PyCharm工具

【实验步骤】

1.实验准备

1.1操作模板

在基础实验中我们使用django.http.HttpResponse()来输出"HelloWorld!

"。

该方式将数据与视图混合在一起,不符合Django的MVC思想.

这里详细介绍Django模板的应用,模板是一个文本,用于分离文档的表现形式和内容.

先在基础实验中创建的app模块中,创建两层目录,分别名为”templates”和模块名.然后在最底层目录创建一个’index.html’文件.

1.1.1创建index.html文件

1.1.2修改模板地址

在index.html文件中输入需要展示的内容,这里就简单用’

{{hello}}

’来作一个例子.

其中双大括号里的就是模板中的变量.

接下来需要向Django说明模板文件的路径修改TEMPLATES中的DIRS为[BASE_DIR+'/testModel/templates/testModel',],如下所示:

1.1.3修改testModelview.py

使用render来替代之前使用的HttpResponse

fromdjango.shortcutsimportrender

defindex(request):

context={}

context['hello']="Helloworld.You’reatthetestModelindex."

returnrender(request,'index.html',context)

1.1.4重新启动,访问输入http:

//127.0.0.1:

8000/sayHello/

可以看到,这里使用render来替代之前使用的HttpResponse。

render还使用了一个字典context作为参数。

context字典中元素的键值"hello"对应了模板中的变量"{{hello}}"。

然后我们可以更新页面,也可以重新启动项目,输入相应的路径就可以看到效果:

1.1.5if/else标签

在上一节的view,template环境下,这里就简单学习一下一些模板简单标签.

*if/else标签

首先在views.py文件修改一下,在context字典变量中添加一个”ifTab”元素.

然后在index.html模板里添加if/else的标签.

重启访问

其中”{%if%}”标签后一定要跟着”{%endif%}”标签,其中的”{%else%}”和”{%elif%}”标签都是可选的.

*for标签

这是处理循环的标签.

与Python的for语句的情形类似,循环语法是forXinY,Y是要迭代的序列而X是在每一个特定的循环中使用的变量名称。

每一次循环中,模板系统会渲染在{%for%}和{%endfor%}之间的所有内容。

过程和if标签一样,修改view和template一些内容,就可以刷新页面看到效果,很方便.

1.1.6for标签

Views.py上添加了list1的迭代对象,并将之赋予context字典中的一项.

在index.html模板中添加for标签,并在里面获取”aths”这个有view传过来的迭代变量.

刷新页面,如下.效果出来了!

1.1.7过滤器标签

模板过滤器可以在变量被显示前修改它,过滤器使用管道字符.格式如下:

{{name|lower}}

{{name}}变量被过滤器lower处理后,文档大写转换文本为小写。

过滤管道可以被*套接*,既是说,一个过滤器管道的输出又可以作为下一个管道的输入.例子如下:

在view文件中添加一个字符串,并将其添加到context字典一项中.

在index.html模板中,添加从view获取到的upper_str字符串,然后通过过滤符来帮它小写化并只提取第一个字符.然后效果如下:

1.2连接mysql数据库

1.2.1增加mysql依赖包

增加mysql依赖包PyMySQL,如果没有则需要增加依赖包

1.2.2设置testModel_init_.py文件

初始化启动pymysql

importpymysql

pymysql.install_as_MySQLdb()

1.2.3设置djangosettings.py

'ENGINE':

'django.db.backends.mysql',

'NAME':

'django1',

'USER':

'root',

'PASSWORD':

'root',

'HOST':

'127.0.0.1',

'PORT':

'3306',

1.3模块操作

1.3.1修改testModel中的models.py

fromdjango.dbimportmodels

#Createyourmodelshere.

classQuestion(models.Model):

question_text=models.CharField(max_length=200)

pub_date=models.DateTimeField("datapublished")

classChoise(models.Model):

question=models.ForeignKey(Question,on_delete=models.CASCADE)

choice_text=models.CharField(max_length=200)

vote=models.IntegerField(default=0)

可以看到Question模型有两个域(field),一个是问题内容(question_text),一个是发布日期(pub_date),这两个域就是相对于问题表的两个字段.而且在可以在代码定义他们的类型(CharField和DateTimeField,除了这两个还有其他域).后面的参数可以定义字段的相关属性,例如默认值(default)和长度(max_length).

而Choice模型有三个域,一个是选择的内容(choice_text)和投票的票数(votes).还一个域是表示有一个外建,关联到Question模型.

1.3.2设置djangosettings.py下的INSTALLED_APPS增加模板地址

模型的代码能给django很多信息,主要是,django通过模型能:

*为app模型创建数据库模型(如CREATETABLE等语句).

*创建python连接数据库API,来连接Question和Choice对象.

首先,为左让项目引入app模块,需要在项目的setting.py的INSTALLED_APPS属性里加入相关class.如下图:

'testModel.apps.TestmodelConfig',

1.3.3执行makemigrations初始化文件

pythonmanage.pymakemigrationstestModel

1.3.4执行sqlmigrate获取创建数据库表的相关信息

pythonmanage.pysqlmigratetestModel0001

1.3.5执行migrate命令来创建这些模型表到数据库

pythonmanage.pymigrate

1.4使用API操作数据库

1.4.1进入manage.py脚本

可以进入交互式python终端来使用django提供的API来操作数据库.

进入djange项目中的交换控制台需要执行命令:

”$pythonmanage.pyshell”

manage.pyshell

1.4.2引入models

fromtestModel.modelsimportQuestion,Choise

查询表所有数据

Question.objects.all()

新增记录

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2