Request:python环境已经配置好,pycharm专业版已经安装
First:
打开pycharm新建django项目
点击New enviroment using,选择Virtualenv,指明项目文件夹名称以及目录,我这里建立在E盘下面,文件夹为boger,创建python项目习惯创立在虚拟环境,点击Inherit global site-packages,意思是继承全局Python环境下的工具包,点击create进行创建项目
Then:
创建应用,以及各类文件夹,
点击下方的terminal,输入指令startapp +app名称,回车,就会创建应用,我这里创建的是mysite,创建完后,项目目录下会出现mysite文件夹及其子文件。此时在项目根目录需要创建static文件夹来存放我们的静态文件,如,css js等。templates下方存放的是html文件
如果app过多,我们将建立文件夹apps,来存放各种app。根目录建立一个requirements.txt文件夹来记录项目所依赖的包,根目录建立extra_app文件夹来存放其他应用或者python文件,根目录创建media来存放媒体文件,如video等,manage.py文件是项目启动文件,与项目处于同一根目录,db.sqlite3是系统自带的数据库,此时我们的项目文件结构就出来了
Then:
我们来看配置文件,项目名称mysite->setting.py里面
DEBUG=True //开启调试模式,这个一般不进行改动,我们修改程序时,再次运行时,它会自己启动
INSTALLED_APPS这里是安装的app配置,我们需要把自己创建的app在这里进行配置
用引号,后面加上逗号,如"apps.message_form.apps.MessageConfig"
然后是数据库的配置:
初始数据库配置为’ENGINE’: ‘django.db.backends.sqlite’,
我这里是mysql数据库
NAME:自己创建的数据库名称
USER和PASSWORD是root
HOST主机IP地址,也可任意指定,我这里是本地主机IP127.0.0.1
然后来看语言编码格式配置
默认为以下:
我们要改为以下:
主要是改为中文编码,在进行django项目运行时,将部分显示内容为中文,便于我们修改
紧接着我们来看urls.py文件,项目名称mysite->urls.py路由配置,项目页面跳转路由配置;
默认配置为
from django.contrib import admin导入后台管理包
from django.urls import path导入系统路径
当我们启动项目,浏览器输入127.0.0.1:8000/admin,就会进入后台管理系统(8000为django项目默认端口号),后台管理系统需要创建超级管理员才可以访问,此时,点击Terminal,输入python manage.py createsuperuser,根据画面提示,输入user,password,点击保存。当我们输入127.0.0.1:8000/admin,输入账号,密码就可以进入后台管理系统了。
当我们输入127.0.0.1:8000/message_form,页面就会跳转到message_form这个html界面。那我们怎么来设置django端口号呢,见下图
点击项目下拉菜单,选择Edit confirgution,出现下面界面
在port那里设置端口号,默认为8000,自己可以设置个8001 8002等,python项目端口号不同即可
紧接着看wsgi.py,项目名称mysite->wsgi.py这个文件主要用于项目部署,前期基本不用管它
启动项目,有多种方式,第一直接run->项目名称,第二,打开Terminal,输入python manage.py runserver,项目就跑起来了
我们似乎没有讲怎么连接数据库?来了,最后,讲一讲python连接mysql数据库
首先,我们要去下载驱动
浏览器输入python extension package for windows,这里有许多的驱动包,我们需要的是mysqlclient-1.4.2-cp37-cp37m-win_amd64.whl,下载下来进行安装,进入Python的虚拟环境,输入命令pip install mysqlclient-1.4.2-cp37-cp37m-win_amd64.whl,此时,这个就会安装在虚拟环境的site-packages目录
紧接着我们要将pycharm里面的数据同步到数据库中,点击tools->run manage.py Task
在控制台输入makemigrations生成迁移文件,然后输入migrate同步数据库
紧接着,启动mysql服务,打开数据库,刷新,就可以看到新增的表了,django有自带的系统表,所以,刷新后会多几张表