Django学习
pip install virtualenv
1、安装虚拟环境
cmd
H:
cd dir envs
virtualenv mytestvirtual
cd mytestvirtual/Scripts/activate 启动虚拟环境
或者
pip install virtualwrapper(管理虚拟环境的)
将envs加入系统环境变量
cd envs
workon mytestvirtual 启动虚拟环境
2、运行虚拟环境,安装Django
*Django项目中,项目的组织结构为:一个项目包含多个应用,一个应用对应一个业务模块
*示例:创建项目的名称为 BookManger,创建应用的名称为Book
*在当前用户的某个目录下创建项目,这样不会发生权限问题
3、创建Django项目
在桌面创建项目:cd ~/Desktop/
创建项目的命令:django-admin startproject BookManger
cd ~/Desktop/BookManger/
tree /f
同名文件夹BookManger
文件:manage.py
4、创建Django应用
python manage.py startapp Book
生成 Book应用文件夹
5、pycharm打开BookManger项目
where python 查看虚拟环境的python.exe的绝对路径
调该栏目的python环境为虚拟环境
6、配置 settings.py 增加我们的Book应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 安装应用
'Book',
]
7、运行
python manage.py runserver python的测试服务器
http://127.0.0.1:8000/ 浏览器可以访问
创建成功
8、使用Django进行数据库开发
***************************************************************************************
MVT 设计模式中的Model,专门负责和数据库交互 models.py
由于Model 中内嵌了 ORM框架,所以不需要直接面向数据库编程
而是定义模型类,通过 模型类和对象 完成数据表的 增删改查
ORM框架 就是把数据表的行与相应的对象建立关联,互相转换,使得数据库的操作面向对象
***************************************************************************************
*定义模型类
class BookInfo(models.Model):
"""定义书籍信息的模型类"""
#设计name
name = models.CharField(max_length=10)
class PeopleInfo(models.Model):
"""定义人物信息的模型类"""
name = models.CharField(max_length=10)
gender = models.BooleanField()
book = models.ForeignKey(BookInfo)#外键设置
#models.ForeignKey(BookInfo,on_delete=models.CASCADE)
*模型迁移
生成迁移:
python manage.py makemigrations
***************************************************************************************
Book\migrations\0001_initial.py
- Create model BookInfo
- Create model PeopleInfo
***************************************************************************************
执行迁移:
*********python manage.py migrate*********
生成db.sqlite3
=====================================MYSQL==================================
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
下载whl
pip install ***.whl
CREATE DATABASE database_name CHARACTER SET UTF8; 指定数据库的编码utf8
DATABASES = {
# 默认的sqlite3
# 'default': {
# 'ENGINE': 'django.db.backends.'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
# 配置mysql
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bookdjango',# 数据库名字
'HOST': 'localhost',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'root',
}
}
输入python manage.py sqlmigrate appname 0001查看生成的sql语法
如果sql正确,不能新建数据表:
报错 raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
1、修改数据库的权限,版本5.55 失败
2、将django的版本安装2.0 pip install Django==2.0.0 -i https://pypi.douban.com/simple
*********python manage.py sqlmigrate Book 0001*********
Book app_name应用名称 0001 migration_name 文件0001_initial.py
=====================================MYSQL==================================
*操作数据库
django站点 后台 web访问
站点:分为 内容发布 和 公共访问 两部分
内容发布:网站的管理员复制查看、添加、修改、删除数据
使用django的管理模块,需要以下步骤:
*管理界面本地化
语言、时间设置
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
===
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
*创建管理员
python manage.py createsuperuser
admin 2018huahua
python manage.py runserver
*注册模型类
admin.py
# 注册书籍信息
admin.site.register(BookInfo)
# 注册人物信息
admin.site.register(PeopleInfo)
*发布内容到数据库
*自定义站点管理页面
models.py
改变部分
class BookInfo(models.Model):
"""定义书籍信息的模型类"""
#设计name
name = models.CharField(max_length=10)
def __str__(self):
"""以字符串的形式输出模型"""
return self.name
改变某个类型的站点页面
models.py
class PeopleInfoAdmin(admin.ModelAdmin):
"""人物信息模型类的站点管理类 web"""
list_display = ['id','name','gender','book']
# 注册书籍信息
admin.site.register(BookInfo)
# 注册人物信息
admin.site.register(PeopleInfo, PeopleInfoAdmin)#注册人物信息类 和人物站点信息管理类