Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
1.首先必须安装python(不解释)
2.通过pip安装Django
pip install django
# 如果需要安装特定版本
pip install django==版本号
将django配置进环境变量path中,在path中增加python安装路径下的scripts/django/
在需要创建项目的目录下运行cmd,并输入
django-admin startproject 项目名
python manage.py startapp 应用名
python manage.py runserver
# 默认地址http://127.0.0.1:8000
注意:一个项目可以包含多个应用
在应用models.py文件中新建一个类,继承models.Model
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf8")
from django.db import models
# Create your models here.
class BookInfo(models.Model):
book_name = models.CharField(max_length=20)
create_time = models.DateTimeField()
class HeroInfo(models.Model):
hero_name = models.CharField(max_length=20)
hero_content = models.CharField(max_length=120)
sex = models.BooleanField(default=True)
book_relex = models.ForeignKey('BookInfo')
python manage.py makemigrations
python manage.py migrate
通过相应的类操作表(django默认数据库是sqlite3)
# 进入django终端
python manage.py shell
# 导入相应的类
from 应用名.models import 类名 #假如类名为HeroInfo
from first_django.models import BookInfo, HeroInfo
#创建对象
b = BookInfo()
#添加数据
b.book_name = '天龙八部'
b.create_time = '1990/01/01'
#保存数据
b.save()
h = HeroInfo()
h.hero_name = '段誉'
h.hero_content = '六脉神剑'
h.sex = False
h.book_relex = b
b.save()
修改语言和修改时区
进入项目的setting.py文件
LANGUAGE_CODE = 'zh-hans' #语言是汉语
TIME_ZONE = 'Asia/Shanghai' #时区是上海,没有北京
python manage.py createsuperuser
在应用下面的admin.py文件中进行注册
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.contrib import admin
# Register your models here.
from first_app.models import BookInfo, HeroInfo
admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo, HeroInfoAdmin)
这样启动项目
python manage.py runserver
# 如果提示端口号被占用可以这样启动 python manage.py runserver 指定端口号
python manage.py runserver 8888
访问localhost:8000/admin 就可以查看管理界面了
输入创建管理员时的用户名和密码
这时就可以看见上面创建的两个模型
点击其中一个模型
我们看见只是显示了一个BookInfo object 不是特别直观
这里我们可以通过自定义管理界面来改变模型的展现形式
1.修改模型文件
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf8")
from django.db import models
# Create your models here.
class BookInfo(models.Model):
book_name = models.CharField(max_length=20)
create_time = models.DateTimeField()
def __str__(self):
return self.book_name
class HeroInfo(models.Model):
hero_name = models.CharField(max_length=20)
hero_content = models.CharField(max_length=120)
sex = models.BooleanField(default=True)
book_relex = models.ForeignKey('BookInfo')
def __str__(self):
return self.hero_name
这样,我们的模型在管理界面就会显示出来书的名称,比较直观了
2.修改应用目录下的admin.py文件
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.contrib import admin
# Register your models here.
from first_app.models import BookInfo, HeroInfo
# 自定义模型管理类
class BookInfoAdmin(admin.ModelAdmin):
# list_display中的字段会直接显示在管理界面
list_display = ['id', 'book_name', 'create_time']
class HeroInfoAdmin(admin.ModelAdmin):
list_display = ['id', 'hero_name', 'sex', 'hero_content']
# 当我们自定义了管理类,在注册的时候我们必须要增加一个参数,将管理类传进去
admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo, HeroInfoAdmin)
这时,管理界面显示如图
小白学习笔记,不喜勿喷谢谢,请各位大神多多指教
如有不足请指出