Home >  > Django笔记二(3小时及根据数据库生成model)

Django笔记二(3小时及根据数据库生成model)

0

一、Bobby django在线教育平台

第三课 留言功能开发

1.将app放到apps下面

导入的时候需要使用

from apps.message import views

最好在settings中配置apps目录当作根搜索路径。

2.django 多条件搜索(name and address)

all_messages = UserMessage.objects.filter(name="boddy", address="北京")

3.为什么要用URL别名?
在模板中也使用url别名,以后url地址可以随便改,而模板中不用改。

url(r'^from')

有可能匹配到/formtest,所以最好加一个$。

二、马哥视频

1.新建项目
如果你已经有一个目录了,比如blogproject,使用

python startproject blog .

则可以将blogproject作为项目目录,直接在下面建立一个blog文件。
不会建立一个blog项目文件 ,里面又有一个blog文件夹。

2.
一对多时,自动创建会增加_id后缀。
从一访问多,使用对象.小写模型类_set
从一访问一,使用对象.小写模型类

3.
django 可以 return jsonResponse([¨user¨:¨kevin¨]),前端可以看到response数据。

4.
django开发时,可以使用postman测试post数据,而不用设计前端表单。

from django.http import JsonResponse, HttpResponse, HttpRequest

import json

def req(request,HtteResponse):
    payload = json.loads(request.body.decode())
    email = payload[¨email¨]
    print(payload)
    return HttpResponse (¨Welcome to my site¨)

5. filter(pk=xx)
这里pk是主键,不用担心 主键的名字。
qs = User.objects.filter().first(() #取第一个

user=User.objects.filter(email=email).get()
get()仅返回单个满足条件的对像,如果未能返回对像则抛出DoesNotExist异常,如果能返回多条,抛出MultipleObjectsReturned

user=User.objects.filter(id_gt=3) #great than
user=User.objects.filter(id_lt=3) #less than

参考:https://www.bilibili.com/video/av33618159/?p=4

三、slug
字段:

slug = models.SlugField(max_length=80, null=True, blank=True, verbose_name='(URL)别名')

#定义save方法
    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super(Question, self).save(*args, **kwargs)

这样当没有设定slug的时候,就自动以标题作为slug,而且也支持汉字:
比如汉字的slug:

权重相当,对方网站几万收录
#quan-zhong-xiang-dang-dui-fang-wang-zhan-ji-mo-shou-lu

四、存在则更新,不存在就创建

models.UserToken.objects.updater_or_create(user=obj,defaults=('token':token))

五、根据数据库生成models
注意:novel是app的名称。

python manage.py inspectdb > novel/models.py

参考:
https://www.bilibili.com/video/BV1cW411i7fj?from=search&seid=13100451082786372678 73分钟左右。

六、随机查询

novelcopy = NovelCopy.objects.filter().order_by('?')[:6]

七、爬小说

for url, shuming in zip(data1,data2):
    print(url,shuming)
    if os.path.exists(shuming) == False:
        os.mkdir(shuming)
    

https://www.bilibili.com/video/BV1eb411M7ZT?from=search&seid=3295283783267063846

暧昧帖

本文暂无标签

发表评论

*

*