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)#注册人物信息类 和人物站点信息管理类