Python Django框架学习(一)

本文章只适用于初学者,大神请跳过

简介:

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

Django环境准备

1.首先必须安装python(不解释)

2.通过pip安装Django

pip install django
# 如果需要安装特定版本
pip install django==版本号

将django配置进环境变量path中,在path中增加python安装路径下的scripts/django/

创建一个Django项目

在需要创建项目的目录下运行cmd,并输入

django-admin startproject 项目名

创建一个应用

python manage.py startapp 应用名

启动服务

python manage.py runserver 

# 默认地址http://127.0.0.1:8000

注意:一个项目可以包含多个应用

创建Model

在应用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  就可以查看管理界面了

Python Django框架学习(一)_第1张图片

输入创建管理员时的用户名和密码

Python Django框架学习(一)_第2张图片

这时就可以看见上面创建的两个模型

拓展

点击其中一个模型

Python Django框架学习(一)_第3张图片

我们看见只是显示了一个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)

这时,管理界面显示如图

Python Django框架学习(一)_第4张图片

小白学习笔记,不喜勿喷谢谢,请各位大神多多指教

如有不足请指出

 

你可能感兴趣的:(Django学习,Python,Django,Web框架)