前言
之前一段时间使用django框架开发了的一些简单的工业系统,当时是边学习边开发。现在打算开始重新再系统性的整理一下,业余时间重新构建一套web系统。这里随笔记录一下觉得对自己有用的信息。
供自用,只记录开发django应用过程中重要的部分,或者说开发流程中关键的点,用于帮助自己之后快速回忆。
1)创建项目 Django web project
这里不记录如何安装Django库包,自行解决。使用的是3.0版本。
创建项目的过程:
- 创建Django 项目
django-admin startproject my_django_project
- 创建app
django-admin startapp my_app
以上执行之后便会获得包含一个django_app应用的基本django目录和基本文件。
2)设置数据库,迁移数据库
setting.py文件中配置数据库的基本信息,新建的app记得也再相应位置添加进去。
mysql数据库的设置demo
DATABASES = {
'default':{
'ENGINE' :'django.db.backends.mysql',
'NAME':'数据库名',
'USER':'用户名',
'PASSWORD':'数据库密码',
'HOST':'ip',
'PORT':'端口'
}
}
另外要先安装pymysql,并在主项目的__init文件中设置替代语句
import pymysql
pymysql.install_as_MySQLdb()
执行命令 makemigratiins 生成迁移变化,原理是检测app目录中models文件内容和app/migrations目录中最后一次生成的迁移记录文件的内用的变化,生成新的迁移文件。
- 生成迁移文件
python manage.py makemigrations
- 执行迁移内容
python manage.py migrate
项目主目录下的manage.py 文件包含了一系列django的内置指令。
初次的migrate 会在数据库中生成django自带的一些表格,用户、权限、组、会话等等一些表。
makemigrations 和 migrate 对于多数据库,多app 的情况时,在使用的时候还要添加更多的参数来表明检查或执行的是哪些app的models和迁移到哪个数据库中。此外多数据库的情况还要添加新的文件和设置,之后展开。
注意:在执行数据库相关指令之前请自行配制好相关数据库的安装,如下给出一些Linux上git相关和mysql安装相关的指令。
Linux 服务器上的一些相关操作 指令
Linux使用的Ubuntu,centos请自行切换相关关键字
1) Git 一些操作
安装git
apt install git
配置git相关设置,git登陆github账号
git config --global user.name "XXXX"
git config --global user.email "XXX@xxx.xx"
从github上克隆项目,拉取项目到服务器上。或创建ssh key 来克隆项目会更加稳定
git clone https:***************.git
SSH 方式
cd ~/.ssh
ls 显示目录下文件,检查是否存在id_dsa和id_dsa.pub文件 注意id_dsa内容千万不要传给其他人
ssh-keygen -t rsa -C "git邮箱" 生成ssh key 文件
cat id_dsa.pub 显示id_dsa.pub里面的内容 复制之后再github里创建新的ssh key时会用到
检查当前目录git的历史上传日志情况 各时期版本
git log
检查stage工作区是否有未提交的commit
git status
拉取总分支的更新,同步代码变动到服务器
git pull origin master
注意:执行git操作时,要在对应项目的git主目录里
以上为拉取code变动到本地的过程,以下为推送变动到git仓库指令
捕获更新变动
git add .
git commit -m '更新内容解释,不要懒,请加上解释'
推送变动
git push origin master
2)MySQL 一些操作
安装mysql
apt install mysql
mysql 数据库创建Database,django的setting文件对数据库的设定中有包含数据库名称的设定。
mysql create database my_database charset=utf8;
charset=utf8mb4 设置编码格式
mysql 后续指令其实就是sql相关语句,注意结尾要加;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!
注意:Django项目里如果使用pymysql的做数据库连接引擎的话,需修改项目的__init__.py文件,添加下属信息:
import pymysql
pymysql.install_as_MySQLdb
且安装mysqlclient,如果安装报错请先按下面注意事项安装msql dev环境后再执行此语句安装mysqlclient
pip3 install mysqlclient
注意:linux上除了安装mysql外,还要安装好其dev环境
sudo apt install libmysqlclient-dev
最好单独给mysql配置型的用户
CREATE USER 'test'@'localhost' IDENTIFIED BY 'test'; 撞见新用户和用户名,这里为本地用户
然后赋予权限给新建的用户
use test_db; 选中所想让其拥有权限额度数据库
GRANT all privileges ON test_db.* TO 'test'@'localhost'; 赋予该用户对于test_db数据库所有的权限
flush privileges; 更新权限表
其他相关配置参数请百度
如果django 项目 migrate 的时候遇到下述报错,侧是权限问题,请安上面的代码给全权限且刷新权限组。
(1142, "CREATE command denied to user 'xxx'@'localhost' for table 'django_migrations'")
(1045, "Access denied for user 'xxx'@'localhost' (using password: YES)
注意:连接其他服务器上的mysql时本地也需要安装mysql-client
目录网址 https://downloads.mysql.com/archives/community/
在目录里找到对应的安装包 复制其左下角的括号里的版本代码,在linux里用以下指令安装
apt install mysql-client