python manage.py makemigrations python manage.py migrate 获取对象有以下方法: Person.objects.all() Person.objects.all()[:10] Person.objects.get(name=name) Person.objects.filter(name="abc") Person.objects.filter(name__iexact="abc") # 名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件 Person.objects.filter(name__contains="abc") # 名称中包含 "abc"的人 Person.objects.filter(name__icontains="abc") #名称中包含 "abc",且abc不区分大小写 Person.objects.filter(name__regex="^abc") # 正则表达式查询 Person.objects.filter(name__iregex="^abc") # 正则表达式不区分大小写 Person.objects.exclude(name__contains="WZ") # 排除包含 WZ 的Person对象 Person.objects.filter(name__contains="abc").exclude(age=23) # 找出名称含有abc, 但是排除年龄是23岁的 1. QuerySet 创建对象的方法 # 方法 1 Author.objects.create(name="WeizhongTu", email="tuweizhong@163.com") # 方法 2 twz = Author(name="WeizhongTu", email="tuweizhong@163.com") twz.save() # 方法 3 twz = Author() twz.name="WeizhongTu" twz.email="tuweizhong@163.com" twz.save() # 方法 4,首先尝试获取,不存在就创建,可以防止重复 Author.objects.get_or_create(name="WeizhongTu", email="tuweizhong@163.com") # 返回值(object, True/False) 备注:前三种方法返回的都是对应的 object,最后一种方法返回的是一个元组,(object, True/False),创建时返回 True, 已经存在时返回 False 3. 删除符合条件的结果 Person.objects.filter(name__contains="abc").delete() # 删除 名称中包含 "abc"的人 如果写成 people = Person.objects.filter(name__contains="abc") people.delete() 效果也是一样的,Django实际只执行一条 SQL 语句 得到满足条件的结果,然后 delete 就可以(危险操作,正式场合操作务必谨慎) 4. 更新某个内容 (1) 批量更新,适用于 .all() .filter() .exclude() 等后面 (危险操作,正式场合操作务必谨慎) (2) 单个 object 更新,适合于 .get(), get_or_create(), update_or_create() 等得到的 obj,和新建很类似 twz = Author.objects.get(name="WeizhongTu") twz.name="WeizhongTu" twz.email="tuweizhong@163.com" twz.save() # 最后不要忘了保存!!! 6. QuerySet 是可以用pickle序列化到硬盘再读取出来的 >>> import pickle >>> query = pickle.loads(s) # Assuming ‘s‘ is the pickled string. >>> qs = MyModel.objects.all() >>> qs.query = query # Restore the original ‘query‘. 7. QuerySet 查询结果排序 Author.objects.all().order_by(‘name‘) Author.objects.all().order_by(‘-name‘) # 在 column name 前加一个负号,可以实现倒序 8. QuerySet 支持链式查询 Author.objects.filter(name__contains="WeizhongTu").filter(email="tuweizhong@163.com") Author.objects.filter(name__contains="Wei").exclude(email="tuweizhong@163.com") # 找出名称含有abc, 但是排除年龄是23岁的 Person.objects.filter(name__contains="abc").exclude(age=23) 9. QuerySet 不支持负索引 Person.objects.all()[:10] 切片操作,前10条 Person.objects.all()[-10:] 会报错!!! # 1. 使用 reverse() 解决 Person.objects.all().reverse()[:2] # 最后两条 Person.objects.all().reverse()[0] # 最后一条 # 2. 使用 order_by,在栏目名(column name)前加一个负号 Author.objects.order_by(‘-id‘)[:20] # id最大的20条 10. QuerySet 重复的问题,使用 .distinct() 去重 一般的情况下,QuerySet 中不会出来重复的,重复是很罕见的,但是当跨越多张表进行检索后,结果并到一起,可能会出来重复的值(我最近就遇到过这样的问题) qs1 = Pathway.objects.filter(label__name=‘x‘) qs2 = Pathway.objects.filter(reaction__name=‘A + B >> C‘) qs3 = Pathway.objects.filter(inputer__name=‘WeizhongTu‘) # 合并到一起 qs = qs1 | qs2 | qs3 这个时候就有可能出现重复的 # 去重方法 qs = qs.distinct() 假设一篇文章只有一个作者(Author), 一个作者可以有多篇文章(Article), 一篇文章可以有多个标签(Tag) import os django.contrib.auth request.session[key] = value request.session.get(key, default=None) del request.session[key] arr.append() arr = [] arr1 + arr2 %s % name %d # Ajax <!DOCTYPE html> <html> <body> <p>请输入两个数字</p> <form action="/add/" method="get"> a: <input type="text" id="a" name="a"> <br> b: <input type="text" id="b" name="b"> <br> <p>result: <span id=‘result‘></span></p> <button type="button" id=‘sum‘>提交</button> </form> <script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script> <script> $(document).ready(function(){ $("#sum").click(function(){ var a = $("#a").val(); var b = $("#b").val(); $.get("/add/",{‘a‘:a,‘b‘:b}, function(ret){ $(‘#result‘).html(ret) }) }); }); </script> </body> </html> # CSRF cross-site request forgery # Python 类型 bool int float str list tuple set dict reduce if-elif-else if __name__ == "__main__": *args 元组 **args 字典键值对 lambda s:s*n 直接给发钱 class open: def __init__(self, fillPath): import sys open(‘‘, ‘w‘) import os os.system rename remove linesep isfile # 微信验证 博客系统 培训机构 页面 ID title descript city address 111 公司名称 详情经历描述 城市 具体地址 搜素功能 关键词 模糊搜索 按照城市 公司名称 数据提交 评论 跟评 点赞 可信度 浏览量 广告 展示 列表页 详情页: 图片 无视频 分页 详情页 有标题 摘要 描述内容 发布时间 评论 编辑器 ORM Forms CSRF Migrations Validators Caching Sites Testing Templates Admin Comments Dev Server Auth I18N Authorization # settings.py 把英文改为中文 LANGUAGE_CODE = ‘zh-hans‘ 把国际时区改为中国时区 TIME_ZONE = ‘Asia/Shanghai‘ TEMPLATES=[ { ... ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)], ... } ] DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘, ‘NAME‘: ‘imook‘, ‘USER‘: ‘root‘, ‘PASSWORD‘: ‘zxcv1234‘, ‘HOST‘: ‘localhost‘, ‘PORT‘: ‘3306‘, ‘OPTIONS‘: { ‘autocommit‘: True, }, } } 最关键的一点,在站点的__init__.py文件中 import pymysql pymysql.install_as_MySQLdb() 互联网彩票 模式 代理发行销售