Django 学习
urls.py 路由系统 from django.conf.urls import url,include
from django.contrib import admin
from web import views,urls
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^list/(\d*)/',views.list),
url(r'^adm/(\d){4}/(\d){2}/',views.adm),
url(r'^login/(?P<name>\d*)/',views.login),
url(r'^login/(?P<name>\d*)/',views.login,{'id':222}),
url(r'^feng/',include('web.urls')),
]
{{ yourPorn }}
<hr/>
{{ name_list }}
<hr/>
<ul>
{% for k,v in name_list.items %}
{% if v == 'IT' %}
<li style="background-color: springgreen;width: 80px">{{ k }}::{{ v }}</li>
{% else %}
<li>{{ k }}::{{ v }}</li>
{% endif %}
{% endfor %}
</ul>
. 创建数据库-settings 连接mysql的配置文件 DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'fengjian',
'USER': 'fengjian',
'PASSWORD': '',
'HOST': '172.16.230.151',
'PORT': '',
} } .在settings 的INSTALLED_APPS添加app(web)的models 路径
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'web',
] 创建model,继承自modles.Model类
静态字段 = model.CharField(max_length=) .执行数据库
python manage.py makemigrations
python manage.py migrate 常用的models字段有, models.CharField, models.BooleanField, models.IntegerField,
models.TextField, models.DatetimeField
外键 一对多 class UserType(models.Model):
name = models.CharField(max_length=) class UserInfo(models.Model):
username = models.CharField(max_length=)
password = models.CharField(max_length=)
gender = models.BooleanField(default=True)
age = models.IntegerField(default=)
memo = models.TextField(default='xxx')
createdata = models.DateTimeField(default='2016-03-23 10:05') typeid = models.ForeignKey('UserType') 一个用户类型(普通用户,管理员),对应多个用户 UserInfo tableshow id username typeid_id ........ ############################################# 多对多
一个用户可以对应多个组,
class Group(models.Model):
groupname = models.CharField(max_length=30) class user(models.Model):
username = models.CharField(max_length=30)
email = models.EmailField(default='abc@gmail.com') user_group_id = models.ManyToManyField('Group')
会单独自动添加出一张表user_group_id
id user_id group_id
其他常用命令: python manage.py runserver 0.0.0.0
python manage.py startapp appname
python manage.py syncdb
python manage.py makemigrations
python manage.py migrate python manage.py createsuperuser
、models.AutoField 自增列 = int()
如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。
、models.CharField 字符串字段
必须 max_length 参数
、models.BooleanField 布尔类型=tinyint()
不能为空,Blank=True
、models.ComaSeparatedIntegerField 用逗号分割的数字=varchar
继承CharField,所以必须 max_lenght 参数
、models.DateField 日期类型 date
对于参数,auto_now = True 则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。
、models.DateTimeField 日期类型 datetime
同DateField的参数
、models.Decimal 十进制小数类型 = decimal
必须指定整数位max_digits和小数位decimal_places
、models.EmailField 字符串类型(正则表达式邮箱) =varchar
对字符串进行正则表达式
、models.FloatField 浮点类型 = double
、models.IntegerField 整形
、models.BigIntegerField 长整形
integer_field_ranges = {
'SmallIntegerField': (-, ),
'IntegerField': (-, ),
'BigIntegerField': (-, ),
'PositiveSmallIntegerField': (, ),
'PositiveIntegerField': (, ),
}
、models.IPAddressField 字符串类型(ip4正则表达式)
、models.GenericIPAddressField 字符串类型(ip4和ip6是可选的)
参数protocol可以是:both、ipv4、ipv6
验证时,会根据设置报错
、models.NullBooleanField 允许为空的布尔类型
、models.PositiveIntegerFiel 正Integer
、models.PositiveSmallIntegerField 正smallInteger
、models.SlugField 减号、下划线、字母、数字
、models.SmallIntegerField 数字
数据库中的字段有:tinyint、smallint、int、bigint
、models.TextField 字符串=longtext
、models.TimeField 时间 HH:MM[:ss[.uuuuuu]]
、models.URLField 字符串,地址正则表达式
、models.BinaryField 二进制
、models.ImageField 图片
、models.FilePathField 文件 常用的models字段有, models.CharField, models.BooleanField, models.IntegerField,
models.TextField, models.DatetimeField
class UserType(models.Model):
name = models.CharField(max_length=20) class UserInfo(models.Model):
username = models.CharField(max_length=50)
password = models.CharField(max_length=50)
sex = models.BooleanField(default=False)
age = models.IntegerField(default=20)
mome = models.TextField(default='xxxx')
data = models.DateTimeField(default='2016-03-22 12:00')
typeid = models.ForeignKey(UserType) #设置与UserType表关联一对多
group_repation = models.ManyToManyfieID(Group) 设置多表关联
auto_now_add 自动创建时间
auto_now 自动生成修改时间
class Asset(models.Model):
hostname = models.CharField(max_length=20)
create_date = models.DateTimeField(auto_now_add=True)
update_date = models.DateTimeField(auto_now=True)
、null=True
数据库中字段是否可以为空
、blank=True
django的 Admin 中添加数据时是否可允许空值
、primary_key = False
主键,对AutoField设置主键后,就会代替原来的自增 id 列
、auto_now 和 auto_now_add
auto_now 自动创建---无论添加或修改,都是当前操作的时间
auto_now_add 自动创建---永远是创建时的时间
、choices
GENDER_CHOICE = (
(u'M', u'Male'),
(u'F', u'Female'),
)
gender = models.CharField(max_length=,choices = GENDER_CHOICE)
、max_length
、default 默认值
、verbose_name Admin中字段的显示名称
、name|db_column 数据库中的字段名称
、unique=True 不允许重复
、db_index = True 数据库索引
、editable=True 在Admin里是否可编辑
、error_messages=None 错误提示
、auto_created=False 自动创建
、help_text 在Admin中提示帮助信息
、validators=[]
、upload-to
models.py
################################# #__coding:utf-8__
from django.shortcuts import render,HttpResponse
# Create your views here.
from models import Asset def list(request,id):
print id
return HttpResponse('list') def login(request,name):
print name
http_html='''
username: <input name=username />
password: <input name=password />
'''
return HttpResponse(http_html) def adm(request,id,id1):
print id,id1
return HttpResponse('admin page') # def feng(request):
# f=open('feng.html')
# data = f.read()
# return HttpResponse(data) def index(request):
name_info = {
'name': 'fengjian',
'age':'',
'sex':'boy',
'job':'IT',
}
return render(request,'index.html',
{
'yourPorn':'going to hao daifu',
'name_list':name_info,
}) def hosts(request):
return render(request,'hosts.html') def Add(request,name):
Asset.objects.create(hostname=name)
return HttpResponse('ok') def Delete(request,id):
Asset.objects.get(id=id).delete()
return HttpResponse('ok') def Update(request,id,hostname):
# obj = Asset.objects.get(id=id)
# obj.hostname = hostname
# obj.save()
models.Asset.objects.filter(id__lt=id).update(hostname=hostname) id__lt 小于, id__gt 大于 id__contains 模糊匹配相当于sql中的sql
models.Asset.objects.filter(id__contains=id).update(hostname=hostname)
models.Asset.objects.filter(id__gt=id).update(hostname=hostname
return HttpResponse('ok') def Select(request,hostname):
seldata = Asset.objects.filter(hostname__contains=hostname)
for item in seldata: print item.hostname
return HttpResponse('ok') #获取所有 def Selall(request):
#seldata = Asset.objects.all() #获取所有
seldata = Asset.objects.all()[:] #获取前2个
seldata = Asset.objects.all().order_by('id')
seldata = Asset.objects.all().order_by('-id')
print seldata return HttpResponse(seldata) #############web.urls.py################### from django.conf.urls import url
from django.contrib import admin
from web import views urlpatterns = [ url(r'^admin/', admin.site.urls), #
url(r'^feng/',views.feng),
url(r'^delete/(?P<id>\d*)/',views.Delete),
url(r'^add/(?P<name>\d*)/',views.Add),
url(r'^update/(?P<id>\d*)/(?P<hostname>\w*)/',views.Update),
url(r'^select/(?P<hostname>\w*)/',views.Select),
url(r'^selall/$',views.Selall), ]
、数据库操作
•增加:创建实例,并调用save
•更新:a.获取实例,再sava;b.update(指定列)
•删除:a. filter().delete(); b.all().delete()
•获取:a. 单个=get(id=) ;b. 所有 = all()
•过滤:filter(name='xxx');filter(name__contains='');(id__in = [,,]) ;
icontains(大小写无关的LIKE),startswith和endswith, 还有range(SQLBETWEEN查询)'gt', 'in', 'isnull', 'endswith', 'contains', 'lt', 'startswith', 'iendswith', 'icontains','range', 'istartswith'
•排序:order_by("name") =asc ;order_by("-name")=desc
•返回第n-m条:第n条[];前两条[:]
•指定映射:values
•数量:count()
•聚合:from django.db.models import Min,Max,Sum objects.all().aggregate(Max('guest_id'))
Django 学习的更多相关文章
- 今天主要推荐一下django学习的网址!
前言:每个月忙碌的头20天后,在上班时间投入到django理论学习的过程中,花了差不多3天时间简单的研究了一下django,着实废了我不少脑细胞. 采用虫师前辈的一张图和话: 如果你把这过程梳理清晰了 ...
- Django 学习笔记之四 QuerySet常用方法
QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...
- Django 学习笔记之三 数据库输入数据
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...
- Django学习系列之Form基础
Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...
- Django学习笔记(五)—— 表单
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
- Django学习笔记(三)—— 型号 model
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
- django学习之Model(二)
继续(一)的内容: 1-跨文件的Models 在文件头部import进来,然后用ForeignKey关联上: from django.db import models from geography.m ...
- Python框架之Django学习
当前标签: Django Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0 Python框架之Django学习笔记(十三) 尛 ...
- Django 学习笔记(二)
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...
- Django 学习笔记(五)模板标签
关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...
随机推荐
- 2016.05.03,英语,《Vocabulary Builder》Unit 21
sub, means 'under', as in subway, submarine, substandard. A subject is a person who is under the aut ...
- JavaScript 页面跳转的几种方式 转
第一种: <script language="JavaScript" type="text/javascript"> wi ...
- 使用spring等框架的web程序在Tomcat下的启动顺序及思路理清
大牛请绕过,此文仅针对自己小白水平,对web程序的启动流程做个清晰的回顾. 一.使用spring等框架的web程序在Tomcat下的启动流程 1)Tomcat是根据web.xml来启动的.首先到web ...
- JNDI学习总结(一)——JNDI数据源的配置
一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下: ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connec ...
- Bootstrap页面布局22 - BS工具提示
当鼠标点击在一个a连接上时,显示提示文字的效果 ---------------- tooltip <div class='container-fluid'> <h3 class=' ...
- 【转载】wireshark抓包
两种过滤器 捕捉过滤器:用于决定将什么样的信息记录在捕捉结果中.需要在开始捕捉前设置显示过滤器:在捕捉结果中进行详细查找.他们可以在得到捕捉结果后随意修改 1.捕捉过滤器 语法实例: tcp ds ...
- PHP学习(五)----jQuery和JSON数据
对于jQuery: jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程.
- writing concurrent programs
Computer Systems A Programmer's Perspective Second Edition To this point in our study of computer sy ...
- OpenMP并行编程
什么是OpenMP?“OpenMP (Open Multi-Processing) is an application programming interface (API) that support ...
- Lazarus如何变成XE的界面
先设置: 进入“配置安装的包”,选中 EasyDockMgr 和 easyDockMgrDsgn 这两项,重新编译 Lazarus 吧 修改以后,界面就变成了XE的了: