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