276517382

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、创建项目

在项目工作目录 D:\WorkSpace\Python 激活 Py372Django 虚拟环境,如下所示:

D:\WorkSpace\Python>workon Py372Django
(Py372Django) D:\WorkSpace\Python>

输入创建项目命令:django-admin.py startproject DjangoPro ,如下所示:

(Py372Django) D:\WorkSpace\Python>django-admin.py startproject DjangoPro

进入项目目录

cd DjangoPro

在项目目录下有如下文件:

manager.py  命令行工具,可以使我们以多种方式对 Django 项目进行交互
如果使用 PyCharm IDE 则可以通过 菜单栏 → Tools → Run manage.py Task 启动 manager.py 工具

 进入二级 DjangoPro 目录,在该目录下有如下几个文件:


settings.py 项目的配置文件
urls.py 项目的 URL 配置文件
wsgi.py 项目与 WSGI 兼容的 Web 服务器入口

二、创建应用

通过 python manage.py startapp xxx 命令创建 book 应用,如下代码:

(Py372Django) D:\WorkSpace\Python\DjangoPro>python manage.py startapp book

在 book 应用的 models.py 文件中编写模型代码,比如:

from django.db import models

# Create your models here.

class BookInfo(models.Model):
    btitle = models.CharField(max_length=20)
    bpubdate = models.DateTimeField()

    # 这里的 self.pk 是指 primary_key 主键
    def __str__(self):  # 这里可以设置管理界面显示图书信息的格式
        # return str(self.pk) + '\t' + self.btitle + '\t' + str(self.bpubdate)
        return self.btitle

class HeroInfo(models.Model):
    hname = models.CharField(max_length=20)
    hgender = models.BooleanField()
    hcontent = models.CharField(max_length=255)
    # 如果出现如下错误: 则需要增加 on_delete=models.CASCADE 参数
    # TypeError: __init__() missing 1 required positional argument: 'on_delete'
    hbook = models.ForeignKey(BookInfo, on_delete=models.CASCADE)  # 通过 id 引用外键

    def __str__(self):
        # return str(self.pk) + '\t' + self.hname + '\t' + self.hcontent
        return self.hname

模型代码写完之后,进入应用的注册。

三、注册应用

打开 settings.py 文件,在 INSTALLED_APPS 注册应用 'book',代码如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'book'
]

四、生成迁移文件:根据模型类生成当前选择的数据库对应的 SQL 语句

(Py372Django) D:\WorkSpace\Python\DjangoPro>python manage.py makemigrations

这个时候在应用 book 的 migrations 目录下会生成 0001_initial.py 文件。

五、执行迁移文件:执行 SQL 语句,生成对应的表结构

(Py372Django) D:\WorkSpace\Python\DjangoPro>python manage.py migrate

这时候会把 settings.py 配置文件中注册的应用生成对应的表结构。

注意,这里使用的是默认的数据库 db.sqlite3 ,使用 PyCharm 开发时,在查看 db.sqlite3 数据库的时候,发现无法查看表结构,则在操作界面里面有 Download 链接,点击下载驱动,过程如下:

db.sqlite3 Data Source

 

安装 db.sqlite3 驱动程序

六、创建管理员账号:通过 python manage.py createsuperuser 并根据提示输入用户名 密码 邮箱,如下代码:

(Py372Django) D:\WorkSpace\Python\DjangoPro>python manage.py createsuperuser
Username (leave blank to use 'administrator'): zhenglushan
Email address: 276517382@qq.com
Password:a5s7sh4u
Password (again):a5s7sh4u
Superuser created successfully.

七、启动项目

(Py372Django) D:\WorkSpace\Python\DjangoPro>python manage.py runserver 127.0.0.1:8000

然后打开 http://127.0.0.1:8000/admin/ 即可访问管理界面。

到这里,Django 项目算是创建完成了,下面就是进行开发了。

知识点

1、将模型添加到 Django Admin 管理:打开 book/admin.py 编写如下代码

from django.contrib import admin

from book.models import BookInfo
from book.models import HeroInfo

admin.site.register(BookInfo) # 注册 BookInfo 模型
admin.site.register(HeroInfo) # 注册 HeroInfo 模型

2、将模型显示方式添加到 Django Admin 管理:打开 book/admin.py 编写如下代码

from django.contrib import admin

# Register your models here. 在这里注册你的模型,
# 注册时,同时也可以加上显示方式

from book.models import BookInfo
from book.models import HeroInfo

# 定义模型在 Admin 界面的显示方式
class BookInfoAdmin(admin.ModelAdmin):
    # 列表页属性
    # 显示字段,可以点击列头进行排序
    list_display = ['id', 'btitle', 'bpubdate']
    # 过滤字段,过滤框会出现在右侧
    list_filter = ['btitle']
    # 搜索字段,搜索框会出现在上侧
    search_fields = ['btitle']
    # 分页,分页框会出现在下侧
    list_per_page = 1

    # 添加或修改页面属性
    # 定义属性显示的先后顺序
    # fields = ['bpubdate','btitle']
    # 定义属性分组,或者说分成几个部分进行显示
    fieldsets = [
        ('basic', {'fields': ['btitle']}),
        ('more', {'fields': ['bpubdate']})
    ]

# 定义模型在 Admin 界面的显示方式
class HeroInfoAdmin(admin.ModelAdmin):
    list_display = ['id', 'hname', 'hcontent']

admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo, HeroInfoAdmin)

3、修改编码和时区:

打开项目目录下的 settings.py 文件,做如下配置项的修改:

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-Hans'  # 设置编码
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'  # 设置时区
# 编码和时区设置完成之后,重启服务器,登录服务器,发现界面变成中文界面了。

4、修改后台登录地址:

后台默认的登录地址为 /admin/ 如果修改成其他的,打开项目目录下的 urls.py 文件,做如下修改:

urlpatterns = [
    #path('admin/', admin.site.urls), # 管理页面默认访问路径
    path('zlsadmin/', admin.site.urls), # 修改管理页面访问路径
]

5、修改数据库类型:

Django 默认使用的是 db.sqlite3 数据库,该配置代码在项目目录下的 settings.py 文件的 DATABASES 配置项,如何修改成 MySQL 数据库配置呢?

首先需要安装 MySQL 数据库,然后在虚拟环境下安装 MySQL 驱动,代码如下:

pip install mysqlclient

 接着修改 DATABASES 配置项,代码如下:

DATABASES = {
    # 需要安装 mysql 驱动,在虚拟环境中执行 pip install mysqlclient 命令
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangoedu',
        'USER':'root',
        'PASSWORD':'root',
        'HOST':'localhost'
    }
}

修改数据库类型的配置就完成了。 

posted on 2019-02-25 00:07  276517382  阅读(156)  评论(0编辑  收藏  举报