0
点赞
收藏
分享

微信扫一扫

Django 项目构建 随笔(一)自供 快速回忆 Linux

大自然在召唤 2022-02-22 阅读 36

前言

之前一段时间使用django框架开发了的一些简单的工业系统,当时是边学习边开发。现在打算开始重新再系统性的整理一下,业余时间重新构建一套web系统。这里随笔记录一下觉得对自己有用的信息。

供自用,只记录开发django应用过程中重要的部分,或者说开发流程中关键的点,用于帮助自己之后快速回忆。

1)创建项目 Django web project

这里不记录如何安装Django库包,自行解决。使用的是3.0版本。

创建项目的过程:

  1. 创建Django 项目
    django-admin startproject my_django_project
  2. 创建app
    django-admin startapp my_app

以上执行之后便会获得包含一个django_app应用的基本django目录和基本文件。

2)设置数据库,迁移数据库

setting.py文件中配置数据库的基本信息,新建的app记得也再相应位置添加进去。

执行命令 makemigratiins 生成迁移变化,原理是检测app目录中models文件内容和app/migrations目录中最后一次生成的迁移记录文件的内用的变化,生成新的迁移文件。

  1. 生成迁移文件
    python manage.py makemigrations
    
  2. 执行迁移内容
    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

从github上克隆项目,拉取项目到服务器上。注意提前创建好文件夹

git clone https:***************.git

检查当前目录git的历史上传日志情况 各时期版本

git log

检查stage工作区是否有未提交的commit

git status

拉取总分支的更新,同步代码变动到服务器

git pull origin master

注意:执行git操作时,要在对应项目的git主目录里

以上为拉取code变动到本地的过程,以下为推送变动到git仓库指令

捕获更新变动

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=utf8 设置编码格式

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)

举报

相关推荐

0 条评论