Python3.7+Django2.0+Mysql5.5
Django是由python语言编写的高级web应用框架,采用了MTV <model模型(ORM,对象和数据库), template模板(展示内容),views视图(展示内容)> 框架模式。
安装django
pip install Django==x.x,根据自己的python版本安装,具体见 python版本对应的django版本
若要安装最新版django,直接在cmd命令窗口输入:pip install Django
验证django是否安装成功,在cmd命令窗口依次输入:python
→import django
→django.get_version()
![](https://i-blog.csdnimg.cn/blog_migrate/7e0fea9d82f6db4a9a59ebd2fa4e0bfa.png)
安装成功之后,我们开始创建项目~
- 创建项目
- 在合适位置创建一个目录
- 打开终端进入到上一步创建的目录下,输入:
django-admin startproject project
之后,即可看到创建的目录下多了一个project项目 - 输入:
tree . /f
,即可看到目录层级。这里简单说明一下目录层级。
![](https://i-blog.csdnimg.cn/blog_migrate/8763ca20ed6e34e335acd8f609aba2f5.png)
- manage.py
一个命令行工具,可以使我们用多种方式对Django项目进行交互
project目录
- settings.py(需修改)
项目的配置文件 - urls.py(需修改)
项目的URL声明 - wsgi.py
项目与WSGI兼容的Web服务器入口 - init.py
一个空文件,它告诉Python这个目录应该被看做一个python包
- 配置数据库
注意:Django默认使用SQLite数据库,在settings.py文件中,通过DATEBASSES选项进行数据库配置
Python3.x中安装的是PyMySQL,在__init__.py文件中写入下面两行代码
import pymysql
pymysql.install_as_MySQLdb() #配置MySQL
然后,将cmd命令窗口以管理员身份运行,创建数据库名为 lfh 的数据库👇
![](https://i-blog.csdnimg.cn/blog_migrate/d65a8102711e828b9cef3e3c33479b5e.png)
以数据库 lfh 为例进行示范:对settings.py中的DATABASES进行设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.**mysql**', #**将sqlite3改成mysql**
'NAME': "lfh", #数据库名
'USER': "root", #用户名
'PASSWORD': "root", #数据库密码
'HOST': "localhost", #数据库服务器ip
'PORT': "3308" #端口
}
}
- 创建应用
在一个项目中可以创建多个应用,每个应用进行一种业务处理。
- 打开终端进入02-lfh目录下的project项目
- 执行:
python manage.py startapp myApp
- 执行完上一步之后,打开project目录便可看到自动生成的myApp目录👇
- 激活应用
以后每新建一个应用,都要将应用名添加在这里。
在settings.py文件中,找到INSTALLED_APPS,直接在最后添加应用名'myApp'
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myApp', #添加myApp
]
- 定义模型
有一个数据表就对应有一个模型。
在myApp目录下的models.py文件中定义模型,模型类要继承models.Model类,示例:
class Houses(models.Model): #模型类要继承models.Model
hnumber = models.CharField(max_length=10,verbose_name="房间编号")
hname = models.CharField(max_length=20, verbose_name="租房名称")
type = models.CharField(max_length=20, verbose_name="类型")
area = models.CharField(max_length=20, verbose_name="面积/㎡")
address = models.CharField(max_length=20, verbose_name="位置")
rent = models.FloatField(verbose_name="房费/元")
isRenting = models.CharField(max_length=20, verbose_name="状态")
remarks = models.CharField(max_length=20, verbose_name="备注")
isDelete = models.BooleanField(default=False)
#关联外键,说明:不需要定义主键,在生成时自动添加,并且值为自动增加
howner = models.ForeignKey("Owners", on_delete=models.CASCADE,verbose_name="所属房东")
- 在数据库中生成数据表
生成迁移文件
- 执行
python manage.py makemigrations
,在migrations目录下生成一个迁移文件,此时数据库中还没有生成数据表
执行迁移
- 执行
python manage.py migrate
,相当于执行MySQL语句创建了数据表
执行迁移完成之后,在数据库中可以查看到生成了对应的表:
- 测试数据操作
Admin站点管理
- 配置Admin应用
在settings.py文件中的INSTALLED_APPS中添加django.contrib.admin
(默认是添加好的)
- 创建管理员用户
在项目目录下执行python manage.py createsuperuser
依次输入用户名,邮箱,密码即可完成用户创建
启动服务器 :每次通过浏览器访问项目都要提前进行此步操作,千万要记住!!!!
-
格式:
python manage.py runserver ip:port
-
说明:ip可以不写,不写的话代表本机ip;端口号默认是8000;所以可以直接执行
python manage.py runserver
-
打开浏览器,输入
http://127.0.0.1:8000/admin/
,进入登录界面
-
输入注册的用户名和密码,点击login,即可进入Django站点管理后台
-
将界面汉化,将project\settings.py文件做如下修改:
LANGUAGE_CODE = 'zh-Hans' #汉化,中文简体
TIME_ZONE = 'Asia/Shanghai'
- 管理数据表,在admin.py文件中,添加下面代码
- 格式:
admin.site.register(模型类)
,模型类即 models.py文件中创建的类名
from myApp.models import Owners, Tenants, Houses #从models中导入
admin.site.register(Owners) #在Admin站点注册Oweners表
admin.site.register(Tenants) #在Admin站点注册Tenants表
admin.site.register(Houses) #在Admin站点注册Houses表
刷新网页(或重新启动服务器,输入:http://127.0.0.1:8000/admin/
),就可以看到自己的项目啦~
点击增加或修改,对表进行操作~
这次就先到这里,后面还会基于django更新Admin站点管理、视图和模板的基本使用。我也是小白一个,边学习边总结,大家一起愉快学习罗~
![](https://i-blog.csdnimg.cn/blog_migrate/ae2340fa2724561ba02ba77818c3b3b7.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/0cf235e448cc11d6fd001dba67b31143.jpeg)