Django学习笔记

注:以下内容是我的学习笔记,不当做任何资料供大家参考,纯粹的笔记。

djgango 操作数据库步骤

1、cmd进入项目路径,输入pip install mysqlclient 安装mysql驱动

2、在settings中配置mysql连接:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘blog’,
‘USER’:’root’,
‘PASSWORD’:’123456’,
‘HOST’:’localhost’,
‘PORT’:’3306’,
}
}

3、在django的models中创建model类:

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=60,default='title')
    content = models.TextField(null=True)

4、使用model类创建数据表(数据迁移):

python manage.py migrate    #创建表结构,非model类的表
python manage.py makemigrations TestModel  #做数据迁移的准备
python manage.py migrate   # 执行迁移,创建medel表结构

5、操作数据库:向数据库插入数据:
from django.shortcuts import render
from django.http import HttpResponse
from myblog.models import Article

# Create your views here.
def index(request):
    article = Article(title='标题',content='内容!')
    article.save()
    return render(request,'index.html',{'article':article})
二:配置admin

1、cmd进入django项目路径,输入python manage.py createsuperuser
输入名字,邮件,密码(不可太简单) admin账号密码创建成功
2、通过localhost:8000/admin进入后台管理中,此时管理后台页面是英文的,在settings.py中的LANGUAGE_CODE 改为
值为’zh_Hans’。
3、将我们定义的Model类的管理也添加到后台中,在admin.py中使用:

admin.site.register(Model类名)

4、此时发现model类的计入显示的是:”类名 Object”,可通过修改model类的str方法修改其显示内容,如:

 def __str__(self):
            return self.title 

这样后台显示的就是model类的title属性也不是类名 Object了

三、URL配置

1、在项目根路径中的urls.py中的include中添加命名空间,如创建一个url命名空间如为’myblog’:

url(r'^myblog/',include('myblog.urls',namespace='myblog')),

2、在app的url下给url取名,如取名为’myblog_detail’:

url(r'^article/(?P<article_id>[0-9]+)/$',views.article_detail,name='myblog_detail'),

3、在界面中中给超链接设url访问路径:

<a href="{%url 'myblog:myblog_detail' arti.id%}">{{arti.title}}</a>

四、Admin进一步学习
目的:在admin后台管理界面显示更多的类属性
在admin.py中定义:

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title','content','pub_time')

其中list_display就是设置要显示的属性,然后再注册这个类:
注册方式:在admin.py中使用:admin.site.register(Article,ArticleAdmin),把类名添加到注册语句的括号里

使用过滤器:
如在类中定义:list_filter = (‘pub_time’,),对属性pub_time进行过滤
分页:
list_per_page = 3;
属性分组:

  fieldsets = [
        ('base',{'fields':['title']}),
        ('more',{'fields':['content','pub_time']})
    ];
五、Django Shell

1、cmd进入项目文件路径
2、进入shell命令窗口:python manage.py shell
在这里么可以使用一些函数,可以看到函数的返回值是什么,如:
from myblog.models import Article

六、Django获取对象的方法:

Person.objects.all()
Person.objects.all()[:10] 切片操作,获取10个人,不支持负索引,切片可以节约内存
Person.objects.get(name=name)
#get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filter
Person.objects.filter(name="abc")  # 等于Person.objects.filter(name__exact="abc") 名称严格等于 "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")  # 正则表达式不区分大小写

filter是找出满足条件的,当然也有排除符合某条件的

Person.objects.exclude(name__contains="WZ")  # 排除包含 WZ 的Person对象
Person.objects.filter(name__contains="abc").exclude(age=23)  # 找出名称含有abc, 但是排除年龄是23岁的

八、DTL简单使用:

{% for c in list%}
    {% if forloop.counter|divisibleby:"2" %}
      <li style="color: chartreuse">{{ c.name }}</li>
      {% else %}
      <li style="color: deepskyblue">{{ c.name }}</li>
      {% endif %}
    {%empty%}{% comment %}list为空的时候执行这个{% endcomment %}
     啥也没有
  {% endfor%}

九、静态文件
使用静态文件:

settings.py中设置:
STATIC_URL = '/static/'
STATICFILES_DIRS =[
    os.path.join(os.path.dirname(__file__),'static'),
]

使用static 关键词时需要使用下面语句

{% load static from staticfiles %}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值