Django 搭建环境_初始化
1、创建一个APP、名为BeeterBE
C:UserslanyiDesktoplan>python manage.py startapp BetterBE
2、将APP注册在settings里面
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'BetterBE' ]
3、为APP创建一个容器 (后端项目往往一个项目里面就会包含多个APP,如果多个APP一直放在根目录下就会显得非常凌乱。这种情况下就会创建一个APP容器,将项目放到这个容器里面
用鼠标将BeeterBE项目拖到apps里面去
4、将apps类型改为source root (因为注册的项目只会到默认的根目录下面的去找,刚才我们把BetterBE拖到apps下面去了。)
5、在settings里面添加一个目录,意味着除了在根目录下找APP、还要在APPS里面去找
# 引入sys模块 import os, sys # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, os.path.join(BASE_DIR,'apps'))
django连接MySQL数据库
1、先创建一个模板
编辑apps/BetterEB/models.py
from django.db import models # Create your models here. # 系统操作日志System operation log # Sys_log:用户,操作动作,日期 ,操作结果 0 或者失败 1 1为成功 class B_sys_log (models.Model): B_user = models.CharField(db_column="B_user", max_length=100, null=False) # 用户 B_motion = models.CharField(db_column="B_motion", max_length=100, null=False) # 动作 B_date = models.CharField(db_column="B_date", max_length=100, null=False) # 操作日期 B_result = models.CharField(db_column="B_result", max_length=100, null=False) # 操作结果 # 默认情况下,生成的表名字:App_class, 如果需要自定义,需要使用class Meta来定义 class Meta: managed = True db_table = "B_Sys_log"
2、settings里面设置数据库连接信息
编辑settings.py
DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # } 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'BetterDB', 'USER': 'root', 'PASSWORD': 'Yy100200', 'HOST': '192.168.200.2', 'PORT': '3306' } }
3、要确保操作系统里面有一个组件(pymysql)
Python----Pymysql----Mysql
如果没有利用pip命令安装
pip3 install pymysql
4、将Pymysql初始化到刚才创建的app里面(apps/BetterEB/__init__.py)里面
编辑apps/BetterEB/__init__.py
import pymysql pymysql.install_as_MySQLdb()
要点
django连接数据库 。步骤如下:
- 现在mysql上创建一个名为 《BetterDB》的库
- 在settings.py配置连接《BetterDB》这个库
- 将pymysql模块迎引入到app里面
将models里面的类 映射到mysql数据库里面
1、生成数据库同步脚本(将类转化为脚本)
C:UserslanyiDesktoplan>python manage.py makemigrations
如果报错
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
编辑apps/BetterEB/__init__.py
import pymysql pymysql.version_info = (1, 4, 6, 'final', 0) # change mysqlclient version pymysql.install_as_MySQLdb()
2、将脚本同步到数据库
C:UserslanyiDesktoplan>python manage.py migrate
Operations to perform:
Apply all migrations: BetterBE, admin, auth, contenttypes, sessions
Running migrations:
Applying BetterBE.0001_initial... OK
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 sessions.0001_initial... OK
再次查看数据、完成django与mysql的连接
设置 所有主机可访问
编辑settings.py
ALLOWED_HOSTS = ["*"]