django相关知识

 pip install Django  //安装django框架

Django项目就是一个机遇Django的web应用

Django应用就是一个可重用的python软件包,不可以直接运行。一个应用可以被多个Django项目使用

一个Django项目包含一组配置和若干个Django应用

 

创建一个Django项目

django-admin startproject django_t1 //创建一个django项目
cd django_t1 //进入项目并启动
python manage.py runserver

 

创建一个xxx的Django应用

python manage.py startapp  xxx   

 

django视图学习

1)python manage.py startapp  abc   //在django_t1项目中创建一个abc的应用

打开abc应用的views.py视图文件并输入如下内容

from django.shortcuts import render
from django.http import HttpResponse

def hello(request):
    return HttpResponse("hello world")

2)配置应用层路由

在abc应用下面创建一个urls.py应用层次的路由文件,并输入如下代码:

from django.urls import path,include
import blog.views

urlpatterns=[
    path('hello',blog.views.hello)
]

3)配置项目层路由

打开项目路由urls.py,找到urlpatterns增加如下代码:

path('blog/', include('blog.urls')),

4)打开项目配置文件settings.py,找到INSTALLED_APPS并追加如下代码:

'blog.apps.BlogConfig',

 

模型层学习

1)打开abc应用里的models.py并输入如下代码:
from django.db import models

class Article(models.Model):
    #文章ID   设置主键并自增
    article_id=models.AutoField(primary_key=True)
    #文章标题
    title=models.TextField()
    #文章摘要
    brief_content=models.TextField()
    #文章内容
    content=models.TextField()
    #文章发布日期  如果没有指定这个内容则自动插入当前日期
    publish_date=models.DateTimeField(auto_now=True)

2)执行如下两条命令

python manage.py makemigrations    //生成迁移文件

python manage.py migrate  //将生成的迁移文件运行并导入到数据库中

常用字段类型说明:

字段类型
AutoField:自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性。
BooleanField:布尔字段,值为True或False。
NullBooleanField:支持Null、True、False三种值。
CharField(max_length=字符长度):字符串。TextField:大文本字段,一般超过4000个字符时使用。
-- 参数max_length表示最大字符个数。
IntegerField:整数。
FloatField:浮点数
DecimalField(max_digits=None, decimal_places=None):十进制浮点数。
-- 参数max_digits表示总位数。
-- 参数decimal_places表示小数位数。
DateField[auto_now=False, auto_now_add=False]):日期。
-- 参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false。
-- 参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false。
-- 参数auto_now_add和auto_now是相互排斥的,组合将会发生错误。
TimeField:时间,参数同DateField。
DateTimeField:日期时间,参数同DateField。
FileField:上传文件字段。
ImageField:继承于FileField,对上传的内容进行校验,确保是有效的图片。
在实际开发中不会真的把文件或者图片存到数据库中,而是将文件或者图片放在指定的目录,数据库中记录文件的具体路径。

 

Django shell

python shell 用于交互式的python编程

Django shell 集成Django项目的环境使用一些命令,一般用于临时小范围测试。但总是要写代码很繁琐一般用django admin代替。

例如:进入Django shell并向某表中插入数据

python manage.py shell   //进入Django shell模式,输入如下代码:

    from blog.models import Article
    a= Article()
    a.title='this is title'
    a.brief_content='aaaaaaaaaa'
    a.content='bbbbbbbbbb'

    print(a)  #可以自己打印看戏下
    a.save()  #保存到数据库里面

    #查询上面插入是否成功

    lists=Artile.objects.all()
    getone=lists[0]
    print(getone.title)

 

django admin模板

后台管理工具,读取定义的模型数据,提供了强大的管理页面。比django shell写代码操作方便很多

 

使用django admin模块管理我们创建的Article模型:

1)python manage.py createsuperuser //创建一个管理员账户,输入账号,邮箱(可不写),密码

2)启动项目并访问admin模块

python manage.py runserver

在浏览器输入http://127.0.0.1:8000/admin/并输入账号密码

如何将我们上面创建的Article模型导入到django admin后台以便我们管理呢?

3)打开abc应用中的admin.py并输入如下代码:

from django.contrib import admin

# Register your models here.

from .models import Article
admin.site.register(Article)

4)完成以上步骤在前台http://127.0.0.1:8000/admin/刷新即可管理我们的Article了

5)默认我们定义的模型的数据在admin后台列表显示是这样的,不能直观的看出来:

Artile object (2)
Artile object (1)

解决这个问题我们修改abc的模型models.py追加如下代码:

def __str__(self):
    return self.title

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章