前言
最近使用Django开发项目,记录一下Django的常用操作
新建项目
使用Pycharm
新建Django项目,项目名称是demo
项目结构
创建数据库
简单演示,新建数据库demo_student
-- 创建数据库
CREATE DATABASE demo_django;
Django连接数据库
配置数据库连接信息
打开项目下的setting.py
文件,找到DATABASES
变量,修改引擎,写上数据库的名称、用户名、密码、地址、端口,修改如下:
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
'ENGINE': 'django.db.backends.mysql',
# 'NAME': BASE_DIR / 'db.sqlite3',
'NAME': 'demo_django',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': '3308'
}
}
修改后,发现报错,缺少一些包,按照提示安装即可
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
(D:\Anaconda3501\envs\python385) E:\DjangoLearn\demo>pip install mysqlclient
Looking in indexes: https://pypi.douban.com/simple
Collecting mysqlclient
Downloading https://pypi.doubanio.com/packages/c5/e6/d3dd1d7d47f8ae2e1ac8dde451822cd57da6145ae1597e6db36091f2dd68/mysqlclient-2.1.1-cp38-cp38-win_amd64.whl (178 kB)
|████████████████████████████████| 178 kB 1.7 MB/s
Installing collected packages: mysqlclient
Successfully installed mysqlclient-2.1.1
新建app
执行命令python manage.py startapp studen
t,student
是app的名字,app其实就是数据库的实体。
执行后会出现student
文件夹
创建数据库表
在student
的文件夹下,找到models.py
文件,写入表的列名
from django.db import models
# Create your models here.
class Student(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=10)
sex = models.CharField(max_length=1, default='男')
添加app到项目中,打开setting.py
文件,找到INSTALLED_APPS
变量,添加student
app:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'student'
]
执行迁移命令python manage.py makemigrations
、python manage.py migrate
(D:\Anaconda3501\envs\python385) E:\DjangoLearn\demo>python manage.py makemigrations
Migrations for 'student':
student\migrations\0002_rename_studen_student.py
- Rename model Studen to Student
(D:\Anaconda3501\envs\python385) E:\DjangoLearn\demo>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions, student
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
Applying student.0001_initial... OK
Applying student.0002_rename_studen_student... OK
查看数据库,项目数据库创建成功