django 例子

from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import User

# Create your models here.

class Host(models.Model):
    hostname=models.CharField(max_length=64)
    ip=models.GenericIPAddressField(unique=True)
    port=models.IntegerField(default=80)
    system_type_choices=(
        (‘linux‘,‘LINUX‘),
        (‘Win64‘,‘WIN64‘),
    )
    system_type=models.CharField(choices=system_type_choices,max_length=64)
    enable = models.BooleanField(default=True)
    create_date = models.DateTimeField()
    online_date = models.DateTimeField(auto_now_add=True)
    groups=models.ManyToManyField(‘HostGroup‘)
    idc = models.ForeignKey(‘IDC‘    )

    def __unicode__(self):
        return self.hostname

class IDC(models.Model):
    name = models.CharField(max_length=64,unique=True)
    def __unicode__(self):
        return  self.name

class HostGroup(models.Model):
    name = models.CharField(max_length=64,unique=True)
    def __unicode__(self):
        return self.name

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=64,unique=True)
    host_groups = models.ManyToManyField(‘HostGroup‘,blank=True,null=True)
    hosts= models.ManyToManyField(‘Host‘,blank=True,null=True)

模糊查询,contains是包含
models.Host.objects.filter(system_type=‘LINUX‘,hostname__contains=‘o‘)
结果是一个列表  [<Host: localhost>, <Host: ubuntu>, <Host: jindie>]

精确查询,如果有出现多个,结果将报错
models.Host.objects.get(system_type=‘LINUX‘,hostname__contains=‘o‘)

id大于1的查询
models.Host.objects.filter(id__gt=1)

id in 列表查询
models.Host.objects.filter(id__in=[1,2,3,4,5])

创建1:
import datetime
datetime.datetime.now()

models.Host.objects.create(
    hostname = ‘OA‘,
    ip = ‘1.1.1.5‘,
    port = 80,
    system_type = ‘WIN64‘,
    idc_id =1,  #或者  id = models.IDC.objects.get(name=‘万达机房‘)
    create_date = datetime.datetime.now(),
    online_date = datetime.datetime.now(),
)
h = models.Host.objects.get(hostname=‘OA‘)

all_groups = models.HostGroup.objects.all()

h.groups.add(*[i.id for i in  all_groups])

####################################################

h = models.Host(
    hostname = ‘OA‘,
    ip = ‘1.1.1.5‘,
    port = 80,
    system_type = ‘WIN64‘,
    idc_id =1,
    create_date = datetime.datetime.now(),
    online_date = datetime.datetime.now(),
)

h.save()

all_groups = models.HostGroup.objects.all()
h.groups.add(*[i.id for i in  all_groups])
##############################################
update
h.hostname = ‘feng‘
h.save

models.Host.objects.filter().update(port=11111)

##############################################
delete
models.Host.objects.filter(hostname=‘OA‘).delete()

#################################################

跨表查询,从用户表查询
a = models.UserProfile.objects.last()
a.host_groups.select_related()
a.hosts_select_related()

####################################

判断用户是否登陆成功后,返回{{request.user}}
{% if request.user.is_authenticated %}
        {{request.user}}
{%else%}
        <a href="/login">退出</a>

html编写

<div>
    {{ request.user.userprofile.hosts.select_related }}
    <ul>
    {% for group in request.user.userprofile.host_groups.select_related %}
       <li>{{ group.name }}</li>
        <ul>
        {% for host in group.host_set.select_related %}
            <li>{{ host.hostname }}----->{{ host.ip }}---{{ host.idc.name }}</li>
        {% endfor %}
        </ul>
    {% endfor %}
    </ul>

###############################

views

#!/usr/bin/env python
#_*_ coding:utf-8 _*_
from django.shortcuts import render,redirect,HttpResponse,HttpResponseRedirect
from django.template.context import RequestContext
from django.contrib.auth import authenticate,login,logout
from django.contrib.auth.decorators import login_required
import models

@login_required()
def host(request):
    return  render(request,‘host.html‘)

def acc_login(request):
    ret = {‘status‘:""}
    if request.method == ‘POST‘:
        print request.POST
        username = request.POST.get(‘username‘,None)
        password= request.POST.get(‘password‘,None)
        user = authenticate(username=username,password=password)
        if user is not None:
            login(request,user)
            return HttpResponseRedirect(‘/‘)
        else:
            ret[‘status‘]=‘用户名或者密码错误‘
            return render(request, ‘login.html‘, ret)
    else:
        return render(request,‘login.html‘)
@login_required()
def index(request):
    return render(request,‘index.html‘)

@login_required()
def asset(request):
    return  render(request,‘asset.html‘)

@login_required()
def acc_logout(request):
    logout(request)
    return  HttpResponseRedirect(‘login.html‘)
时间: 2024-08-23 19:05:08

django 例子的相关文章

Django笔记——Eclipse+pydev首个django例子helloworld

本篇文章转载自:http://blog.csdn.net/wklken/article/details/7234157 第一个django程序: 1.      安装Python2.x,建议安装2.6或2.7  下载地址www.Python.org 配置环境变量     我的电脑->属性->高级->环境变量->系统变量 增加PYTHON_HOME     C:\Python27 修改Path  加入%PYTHON_HOME% 2.      安装django 下载地址https:/

Django学习笔记(现学现写,实时更新)

说明:我是先上手做一些简单的例子,然后在尝试的过程中理解Django的原理,笔记也是按这个思路来的. 一.Django结构与基本文件介绍 1. django-admin.py 工程管理工具,主要用于创建项目和app等. 例:django-admin.py startproject project_example 会创建一个名为project_example的工程,目录结构如下: |-- project_example|    |--project_example|        |-- __in

web2py--------------用web2py写 django的例子 --------开发环境

我们先从广为人知的例子说起xi 也就是官方的例子,我会在最后给出代码: ============================环境=================== 编译器使用vs code ,插件只有 python,PowerShell ,第二个插件这个教程中用不到, 为了不产生混淆,不使用版本管理器, py版本2.7.12, 系统,win10 web2py版本 2.14.6-stable+timestamp.2016.05.10.00.21.47 目前是最新版本 如果需要干净一点,选择

django extjs5 交互例子

最近学习了extjs.练习了extjs和django后台交互涉及的ajax,cookie,csrf token等相关例子.完整实现存放在github. 点击打开链接

web2py--------------用web2py写 django的例子 --------建立一个投票应用(3)

我们建立了数据模型,然后这次来进行页面的展示 1.这里是列表页面的 control 这里是dal的语法 只有两行 第一行 是查询出所有问题,也就是问题的id大于0 第二行是返回问题的列表 这里是view 我们在view曾只需要一个for循环其实就可以展示出所有的数据, 但是需要用if判断一下是否为空,贴心的处理一下不为空的情况 注意: 每个{{if }}  {{for}} 这样的逻辑标签,后边是有“:”冒号的,而且有配对的{{pass}}标签宣告他结束 正是因为这些标签,似的写 web2py 跟

Django介绍、安装配置、基本使用、Django用户注册例子

Django介绍 Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站 DjangoMTV的思想 没有controller,把view当成mvc的controller Django安装 可以配合参考:http://blog.csdn.net/jerome_s/article/details/46340079 ( Python介绍.环境搭建.第一个程序) 1. 先安装好Ptyhon 2. 安装Django 下载 :https://www.djangop

基于 django 实现的 webssh 简单例子

说明 新建一个 django 程序,本文为 chain. 以下仅为简单例子,实际应用 可根据自己平台情况 进行修改. 打开首页后,需要输入1,后台去登录主机,然后返回登录结果. 正常项目 可以post 主机和登录账户,进行权限判断,然后去后台读取账户密码,进行登录. djang后台 需要安装以下模块 安装后会有一个版本号报错,不影响 channels==2.0.2 channels-redis==2.1.0 amqp==1.4.9 anyjson==0.3.3 asgi-redis==1.4.3

django 分页例子

django 分页例子 安装 python3.6 -m pip install django-pure-pagination==0.3.0 设置 settings.py INSTALLED_APPS = [ 'pure_pagination', ] PAGINATION_SETTINGS = { 'PAGE_RANGE_DISPLAYED': 3, 'MARGIN_PAGES_DISPLAYED': 2, 'SHOW_FIRST_PAGE_WHEN_INVALID': True, } DISPL

Django 的命令及简单例子

 第一步:下载mysql驱动 cmd进入创建好的django项目目录:然后使用下面的命令创建一个项目testdj. sudo /usr/lib/python3/dist-packages/django/bin/django-admin.py startproject testdj 然后创建一个应用testapp: sudo /usr/lib/python3/dist-packages/django/bin/django-admin.py startapp testapp 第二步:在setting