python交互界面数据库_django专题—数据模型、数据库访问、数据传递

四、定义数据模型

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

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

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

class Host(models.Model):

hostname = models.CharField(max_length=50)

ip = models.IPAddressField()

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

3.初始化数据库

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

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

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

2.1)进入dbshell,熟悉sqlite3

.help     #帮助

.tables  #查看表

.exit      #退出

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

2.3)或者这样进入

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

3)同步数据库

命令python manage.py syncdb

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

3.1)初始化之后,查看表

说明:语法和mysql基本相似

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

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

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

class HostAdmin(admin.ModelAdmin):

list_display = ["hostname","ip"]

admin.site.register(Host,HostAdmin)

5)web查看,并添加数据

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

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

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

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

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

3.查看主机values

4.增加数据

方法一:

n = Host(hostname="huangzp2",ip="192.168.2.232")

n.save()

nodes = Host.objects.all()

nodes.values()

方法二:

n = Host()

n.hostname = "huangzp3"

n.ip = "192.168.3.233"

n.save()

node = Host.objects.all()

node.values()

5.web页面查看

6.查看并修改元素

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

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

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

3.web页面查看

七、数据传递post和get

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

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"

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

3.post方法:curl -d hostname="huangzp5" -d ip="192.168.3.235" http://192.168.2.230:8000/db/

结果:

浏览器查看

4.get方法:

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

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")

浏览器传值:192.168.2.230:8000/db/?hostname=huangzp6&ip=192.168.3.236

浏览器查看:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值