项目创建"/>
Django(二)Django 项目创建
一、创建项目:
在项目工作目录 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.btitleclass 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.hcontentreturn 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 链接,点击下载驱动,过程如下:
六、创建管理员账号:通过 python manage.py createsuperuser 并根据提示输入用户名 密码 邮箱,如下代码:
(Py372Django) D:\WorkSpace\Python\DjangoPro>python manage.py createsuperuser
Username (leave blank to use 'administrator'): zhenglushan
Email address: 276517382@qq
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 adminfrom book.models import BookInfo
from book.models import HeroInfoadmin.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'}
}
修改数据库类型的配置就完成了。
更多推荐
Django(二)Django 项目创建
发布评论