1. 创建django项目
1.在项目路径下执行命令:
django-admin startproject BookStore
2. 在Django中创建一个app
python manage.py startapp index
3.在settings.py
中配置刚刚创建的app
'index.apps.IndexConfig'
2. 配置连接mySQL
1. 在settings.py配置以下信息
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
# 数据库配置 默认的数据库为sqlite
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
# }
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'django_mysql', # 数据库名
'USER': 'root', # 账号
'PASSWORD': 'root', # 密码
'HOST': '127.0.0.1', # HOST
'POST': 3306, # 端口
}
}
2. 在最开始的项目包下的__init__.py中进行如下配置
"""
setting中的配置默认为sqlite3数据库 当需要修改成MySql时
并且在setting.py的同级目录的__init__.py 加入如下配置
否则会报错: Error loading MySQLdb module.
"""
import pymysql
pymysql.install_as_MySQLdb()
3. 然后执行命令,迁移数据库到Mysql。
python manage.py makemigrations --empty web
python manage.py migrate
会生成很多其他表,不用管他,只要咱们要的。
3. 编写Model
在创建的app文件夹下的model.py文件加入如下内容
from django.db import models
# Create your models here.
class Book(models.Model): # 创建 book 表
title = models.CharField(max_length=30, unique=True, verbose_name='书名')
public = models.CharField(max_length=50, verbose_name='出版社')
price = models.DecimalField(max_digits=7, decimal_places=2, verbose_name='定价')
def default_price(self):
return '¥30'
retail_price = models.DecimalField(max_digits=7, decimal_places=2, verbose_name='零售价', default=default_price)
def __str__(self):
return "title:%s pub:%s price:%s" % (self.title, self.public, self.price)
class Author(models.Model): # 创建作者表
name = models.CharField(max_length=30, verbose_name='姓名')
email = models.EmailField(verbose_name='邮箱')
def __str__(self):
return '作者:%s' % self.name
class UserInfo(models.Model): # 创建用户信息表
username = models.CharField(max_length=24, verbose_name='用户注册')
password = models.CharField(max_length=24, verbose_name='密码')
迁移数据库
python manage.py makemigrations --empty web
python manage.py migrate
4.启动项目
python manage.py runserver 127.0.0.1:8000