django专题—数据模型、数据库访问、数据传递

简介:

四、定义数据模型

MVC中的V就是应用下的views.py和templates,C就是项目下的urls.py文件

MVC模型中的M是应用blog下的modles.py文件,专门定义数据库


1.应用目录blog下,modles.py文件定义数据表

说明:数据类型定义方式,在官网中有说明,如ip地址类型:https://docs.djangoproject.com/en/dev/

1
2
3
class  Host(models.Model):
     hostname  =  models.CharField(max_length = 50 )
     ip  =  models.IPAddressField()


1.png


2.检查模型的语法或者逻辑是否有错误

1
python manage.py validate


2.png


3.初始化数据库

1)在项目目录下的setting文件中,可以看到默认数据库为sqllite3,数据库目录在BASE_DIR这层目录,数据库文件名为db.sqlite3

311.png


取两层路径,表示当前脚本上一层目录

312.png

2)查看系统是否安装sqlite3数据库,没有则yum安装

32.png


2.1)进入dbshell,熟悉sqlite3

.help     #帮助

.tables  #查看表

.exit      #退出

321.png


2.2)每次执行登录之后,会自动生成一个db.split3文件,也可以删掉

322.png


2.3)或者这样进入

323.png


2.4)查看数据表,其中id为自动生成

324.png


3)同步数据库

命令

1
python manage.py syncdb


说明:会自动生成一些自带的表,以及认证

33.png


3.1)初始化之后,查看表

说明:语法和mysql基本相似

331.png


4)管理数据,将数据库数据显示在admin页面

修改应用blog下的admin.py文件

说明:先导入表,然后定义一个类,参数为admin模块,继承ModelAdmin方法;列表写表中的字段;注册host表和管理表

1
2
3
class  HostAdmin(admin.ModelAdmin):
     list_display  =  [ "hostname" , "ip" ]
     admin.site.register(Host,HostAdmin)


34.png


5)web查看,并添加数据

35.png


6)数据库上查看添加的数据

36.png




五、交互式方法,访问数据库

1.web项目下,进入python shell,和ipython差不多,多了些环境变量

说明:在其他目录下,看不到web路径

1.png


2.导入Host表,查看主机以及相关方法

2.png


3.查看主机values

3.png


4.增加数据

方法一:

1
2
3
4
=  Host(hostname = "huangzp2" ,ip = "192.168.2.232" )
n.save()
nodes  =  Host.objects. all ()
nodes.values()


41.png


方法二:

1
2
3
4
5
6
=  Host()
n.hostname  =  "huangzp3"
n.ip  =  "192.168.3.233"
n.save()
node  =  Host.objects. all ()
node.values()


42.png


5.web页面查看

5.png


6.查看并修改元素

6.png




六、视图文件views.py访问数据

1.修改web项目下urls.py文件,添加url访问路径

1.png


2.blog下的views.py文件,定义方法方法(相当于命令行)

2.png


3.web页面查看

3.png

32.png



七、数据传递post和get

1.应用目录下views.py定义POST访问方法

1
2
3
4
5
6
7
8
9
10
def  db(req):
     print  req
     if  req.POST:
         hostname  =  req.POST.get( "hostname" )
         ip  =  req.POST.get( "ip" )
         host  =  Host()
         host.hostname  =  hostname
         host.ip  =  ip
         host.save()
         return  HttpResponse( "OK" )


说明:req.POST 或者 req.method == "POST"

1.png


2.注释web目录下setting.py文件中的中间件,启用第三方工具方法访问

clipboard.png


3.post方法:

1
curl -d  hostname = "huangzp5"  -d ip= "192.168.3.235"  http: //192 .168.2.230:8000 /db/


3.png


结果:

32.png


浏览器查看

33.png


4.get方法:

或者else req.GET,因为前者在访问ip/db/时可能会报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def  db(req):
     print  req
     if  req.POST:
         hostname  =  req.POST.get( "hostname" )
         ip  =  req.POST.get( "ip" )
         host  =  Host()
         host.hostname  =  hostname
         host.ip  =  ip
         host.save()
         return  HttpResponse( "OK" )
     elif  req.method  = =  "get" :
         hostname  =  req.GET.get( "hostname" )
         ip  =  req.GET.get( "ip" )
         host  =  Host()
         host.hostname  =  hostname
         host.ip  =  ip
         host.save()
         return  HttpResponse( "OK" )
     else :
         HttpResponse( "no data" )


34.png

浏览器传值:

1
192.168.2.230:8000 /db/ ? hostname =huangzp6&ip=192.168.3.236


35.png


浏览器查看:

36.png











本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/2057518,如需转载请自行联系原作者
目录
相关文章
|
4天前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
18 6
|
11天前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
40 6
|
8天前
|
SQL 关系型数据库 分布式数据库
PolarDB Proxy配置与优化:提升数据库访问效率
【9月更文挑战第6天】PolarDB是阿里云推出的高性能分布式关系型数据库,PolarDB Proxy作为其关键组件,位于客户端与PolarDB集群间,负责SQL请求的解析与转发,并支持连接池管理、SQL过滤及路由规则等功能。本文详细介绍了PolarDB Proxy的配置方法,包括连接池、负载均衡和SQL过滤设置,并探讨了监控调优、缓存及网络优化策略,以帮助提升数据库访问效率。
20 1
|
6天前
|
前端开发 数据库 开发者
数据模型(数据库表设计)生成代码
BizWorks ToolKit 插件集成 Mybatis-Plus 代码生成工具,支持从数据库表批量生成代码,简化开发流程。本文详细介绍配置方法及项目示例,包括配置文件格式、生成选项及具体操作步骤,帮助开发者快速实现代码同步更新。配置文件 `.mp.yaml` 支持自定义输出目录、生成组件等,适用于多种项目结构。
20 0
|
13天前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
27 0
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
|
1月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
|
6天前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
38 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
1月前
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现