业内:

   GET:获取数据

   POST:提交数据

    上传单个数据: request.POST.get(‘’name名‘’)

    上传多选数据: request.POST.getlist('name名')

    上传文件:obj = request.FILES.get('name名')

         obj.chunks()  -生成器

         for item in obj.chunks()

         在form中加入enctype=‘multipart/form-data’

一、路由系统  FBV   CBV

   1,直接 

      url(r'^index/',views.index),    url(r'^home/',views.Home.as_view())

   2.正则表达式的url   'detail-(\d).html'      对应 参数 传入函数

      url(r'detail-(\d+).html',views.detail)

      url(r'detail-(?p<nid>\d+)-(?p<uid>\d+).html',views.detail)

        def detail(request,*args,**kwargs)

   3.name

    对url路由关系进行命名,根据此名称构建想要的url

      url(r'^indexdfd',views.insez,name='i1')

        def func(request,*args,**kwargs):

          from django.urls import reverse

          url1 = reverse('i1')

      xx.html  {%  url  "i1"  %}

      

      url(r'^indexdfd/(\d+)',views.insez,name='i2')

        def func(request,*args,**kwargs):

          from django.urls import reverse

          url2 = reverse('i2,args=(3,)')

   4.url分发机制

    from django.conf.urls import include

    url(r'cmdb/',include('app01.url'))

    url(r'monitor/',include('app02.url'))

   5.默认值

   6.命名空间

  

二、视图系统

    返回数据:

        render(request,"模板的文件路径",{数据名:数据})

        redirect('URL')

        HttpResponse('字符串')

 

四、ORM操作

  django 默认用mysqldb 来连接

  在__init__中加入

  import pymysql

  pymysql.install_as_MySQLdb()

  

  创建表

  1.根据类自动创建数据库表

    #app 中的moudels.py

        class UserInfo(models.model)

        #用户名列,字符串类型,指定长度

        username = models.CharField(max_lenth = 32)

   

    python manage.py makemigrations   #创建表的文件

    python manage.py migrate  #根据文件创建数据库表

  

    如果出现:No changes detected

    在settings 里 installAPP 中  加入 对应的app名称

    如果依然无效,可python manage.py makemigrations <app名称>  #创建表的文件

    在setting 设置 DATABASES  可以选择哪种数据库

    字段:

      字符串类型

      数字类型

      时间类型

      自增(primary_key = True)

    字段参数:

      null        是否为空/    

      default        默认值/

      primary_key    主键

      db_index       索引

      unique        唯一索引

        unique_for_date  对时间做唯一索引

      auto_now     创建时,自动生成时间

      auto_now_add     跟新时,自动生成时间  只用使用obj.save()才有用

      choices      django admin中显示下拉框,避免连表查询

      blank       django admin中表示是否为空

      verbose_name     django admin中显示字段中文

      editable      django admin中是否可被编辑

      error_messages   django admin中提示错误信息

      help_text       django admin中显示帮助信息

      validators      django form,自定义错误信息

  2.根据类对数据库表中的数据进行各种操作

    

    创建数据:

      第一张方式:

      models.UserInfo.objects.create(username='root',password= '123')

      第二种方式:

      obj = models.UserInfo(username='root',password= '123')

       obj.save()

      第三种方式:

      dic = {‘username’:'root','password':'123'}

      models.UserInfo.objects.create(**dic)

    查找数据:

      拿到所有数据:

      result = models.UserInfo.objects.all()  #QuerySet类型 [ obj, obj, obj(id,username,password) ]

      for row in result:

        print(row.id,row.username,row.password)

      条件查询:

      result = models.UserInfo.objects.filter(username='root')

      for row in result:

        print(row.id,row.username,row.password)

      拿第一个:

      result = models.UserInfo.objects.filter(username='root').first()

      拿个数:

      result = models.UserInfo.objects.filter(username='root').count()

      

    删除内容:

    models.UserInfo.objects.filter(id=4).delete()

    跟新内容:

    models.UserInfo.objects.all().update(password='777')

    models.UserInfo.objects.filter(id=3).update(password='777')

    外键:

    在class UserInfo 中加入:

    user_group =  models.ForeignKey('UserGroup',to_field='uid')

    创建时:

    user_group_id = 1

    或:

    user_group = models.UserGroup.objects.filter(id=1).first()  #对象

    

    外键:
      user_group = models.ForeignKey('UserGroup',to_field = 'uid',default=1)

      存入sql中为:user_group_id

      获取方法:
      user_list = Userinfo.objects.all()
      for row in user_list:
        print(row.user_group_id)
        print(row.user_group) #row.user_group代表一个对象
        #row.user_group_id ==== row.user_group.uid

 

添加方法:
model.Userinfo.objects.create(
username = 'root'
password = '123'
email = '3@qq.com'
user_group_id = 1 ) 或者:
model.Userinfo.objects.create(
username = 'root'
password = '123'
email = '3@qq.com'
user_group = models.UserGroup.objects.filter(id=1).first() )

  

外键实例

  一个主机管理的实例:

#主机管理
class Host(models.Model):
nid = models.AutoField(primary_key) = True
hostname = models.CharField(max_length=32,db_index=True)
ip = models.GenericIPAddressField(db_index=True) #加上索引,ipaddressfield已经被generic替换了
port = models.IntegerField()
business = models.ForeignKey(to = 'Business',to_field='id') class Business(models.Model):
#id
caption = models.CharField(max_length=32)
code = models.CharField(max_length=32,null=True,default = ='sa')

  

通过外键操作:

#获取
v = models.Business.objects.all() #以对象方式
#或者获取指定列,内部元素是字典:
v = models.Business.objects.all().values('id','caption') #以字典方式
#获取元祖[(1,运维),(2,开发)]
v = models.Business.objects.all().values_list('id','caption') #只能按序列查找 #获取到的一个对象,如果不存在就报错
models.Business.objects.get(id=1)
models.Business.objects.filter(id=1) 不存在就为none 外键:
v = models.Host.objects.filter(nid__gt=0)
v[0].business.caption ----->通过.进行跨表查询 使用下划线获取外键内的值 (以字典形式)
v2 =models.Host.objects.filter(nid__gt=0).values('nid','hostname','b_id','b_caption') {{ forloop.counter }} 循环计数
{{ forloop.counter0 }}
{{ forloop.revcounter }}
{{ forloop.revcounter0 }}
{{ forloop.last }} 是否是最后一个循环
{{ forloop.first }} 是否是第一个循环 {{ forloop.parentloop }} 是否是最后一个

  

      

      

      

  

网页编程-Django(一)的更多相关文章

  1. 网页编程-django前传

    1.js正则表达式  http://www.cnblogs.com/wupeiqi/articles/5602773.html test  - 判断字符串是否符合规定的正则 正则表达式: rep = ...

  2. 网页编程工具:EditPlus

    字体:Consolas EditPlus,很土很简单很强大的网页编程工具 http://www.editplus.com/download.html  下载 http://www.cnblogs.co ...

  3. java基础54 网络通讯的三要素及网络/网页编程的概述

    1.概述 网络编程注意解决的是计算机(手机.平板.....)之间的数据传输问题.        网络编程:不需要基于html基础上,就可以进行数据间的传输.比如:FeiQ.QQ.微信.....     ...

  4. 网页编程技术与实例 PDF扫描版

    本书主要包括:Web的概念,使用网页编辑工具制作网页,HTML语言的基本结构,JavaScrip和VBScript脚本语言的编程方法,ASP的概念,ASP对象的属性.方法和事件,SQL语言,数据库建议 ...

  5. 10分钟搭建一个小型网页(python django)(hello world!)

    10分钟搭建一个小型网页(python django)(hello world!) 1.安装django pip install django 安装成功后,在Scripts目录下存在django-ad ...

  6. Batsing的网页编程规范(HTML/CSS/JS/PHP)

    特别注意!!!我这里的前端编程规范不苟同于Bootstrap的前端规范. 因为我和它的目的不同,Bootstrap规范是极简主义,甚至有些没有考虑到兼容性的问题. 我的规范是自己从编程实践中总结出来的 ...

  7. django学习记录--第一个网页“hello django”

    一.安装django 下面两种方法任选其一 1.pip或easy_install 安装 pip install django easy_install django 2.到django官网(https ...

  8. BAT之间的区别(学点网页编程,然后开始研究)

    A: 阿里不就是靠网页起家的吗? T: 腾讯靠客户端. B: 百度是靠网页背后的算法技术支持- 最近网页技术又发布了很多新功能,而现在网页功能也已经很强大了. 不知道自己是不是老了,总觉得不喜欢网页( ...

  9. 网页编程-Djiango(二)

    一.初始Ajax ajax的写法: $.ajax({ url:'/host', type:'POST' data:{'k1':123,'k2':'root'} success:function(dat ...

随机推荐

  1. 【bzoj3170】[Tjoi 2013]松鼠聚会 旋转坐标系

    题目描述 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. 输入 ...

  2. HDU——2087剪花布条

    剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. Hadoop High Availability

    Hadoop High Availability HA(High Available), 高可用,是保证业务连续性的有效解决方案, 通常通过设置备用节点的方式实现; 一般分为执行业务的称为活动节点(A ...

  4. 如何应对pm2.5

    细颗粒物又称细粒.细颗粒.PM2.5:指环境空气中空气动力学当量直径小于等于 2.5 微米的颗粒物,也称细颗粒物.能较长时间悬浮于空气中,其在空气中含量(浓度)越高,就代表空气污染越严重.可吸入颗粒物 ...

  5. 【前端学习笔记】2015-09-02~~~~ 关于filter()匹配的使用

    关于filter的使用先记录以下几点: 1.filter(':even')遍历所有元素,找到index为偶数的元素.. ps: filter(':odd')       odd----奇数   eve ...

  6. jq 的replaceWith方法在360下面会出现兼容问题

    弄的繁琐点, 先remove旧的元素,然后append就好了

  7. storage存储对象和数组类型时候的问题

    storage类型存储的类型为字符串,直接使用localstorage.setItem方法存储进去,取出来的时候数据是不能够使用的 解决方法: 先使用JSON.stringify方法转换成为字符串,然 ...

  8. 【HDOJ5971】Wrestling Match(二分图,并查集)

    题意:有n个人,m场比赛,x个人为good player,y个人为bad player, 每场比赛两个人分分别为good和bad,问good和bad是否会冲突 1 ≤ N≤ 1000,1 ≤M ≤ 1 ...

  9. 本地hosts文件

    (1)什么是Hosts文件? Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网 ...

  10. WKWebView与js交互中产生的内存泄漏

    最近开发中突然发现富文本帖子详情内存没有释放掉,找了好久问题都没找到,终于今天发现了问题,先上一点代码片段 WKWebViewConfiguration *configuration = [[WKWe ...