目录
1. 环境准备
2. 开始安装
2.1 安装 Django
2.2 安装 MySQL 数据库
3. 开始配置
3.1 Django 简单配置
3.1.1 创建一个工程 (project) 为 devops:
3.1.2 通过 PyCharm 远程同步服务器代码
3.1.3 在 pycharm 上直接修改 django 的配置文件:
3.1.4 启动 django 服务
3.2 创建新的 App
3.2.1 创建新的 App hello
3.2.2 pycharm 同步下载远程 hello 目录
3.2.3 修改 django 配置脚本
码好 python 的每一篇文章.
大家好! 又有一段时间没更新文章了, 没错, 是真的忙了. 想要写一篇文章, 确实要花几天时间的功夫, 因为要保障文章的质量.
后面的文章我会通过写些基础理论和实战文章, 毕竟干技术的, 光看理论确实会没那么多耐心, 总之, 我会穿插一些, 保证各位看官满意为止.
1. 环境准备
序号 | IP 地址 | 操作系统 | 安装软件 | 备注 |
---|---|---|---|---|
1 | 192.168.8.130 | CentOS 7.6.1810 | python3.6+django2.2 | 都运行在虚拟环境 |
2 | 192.168.8.131 | CentOS 7.6.1810 | mysql | mysql 数据 |
3 | 192.168.8.1 | windows 10 | PyCharm Pro | 专业版能够使用与 centos 远程同步配置 |
CentOS7 安装环境, 请谷歌 或百度查找安装文档, 该步骤略.
python 环境安装
pyenv 虚拟环境管理 python 多版本和软件库 请参考此文.
如何更新 pip 源步骤:
- [root@localhost ~]# mkdir .pip
- [root@localhost ~]# cd .pip/
- [root@localhost .pip]# touch pip.conf
- [root@localhost .pip]# VIM pip.conf
- [global]
- index-url = https://mirrors.aliyun.com/pypi/simple/
- [install]
- trusted-host=mirrors.aliyun.com
- # 添加或修改后, 记得保存.
如何更新 YUM 源步骤:
- # 安装 wget, 有则忽略, 跳过
- [root@localhost ~]# yum install wget -y
- # 备份 yum 源
- [root@localhost python]# cd /etc/yum.repos.d/
- [root@localhost yum.repos.d]# mkdir repo_bak
- [root@localhost yum.repos.d]# mv *.repo repo_bak/
- # 下载新的 repo
- [root@localhost yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
- # 清除系统 yum 缓存并生成新的 yum 缓存
- [root@localhost yum.repos.d]# yum clean all
- [root@localhost yum.repos.d]# yum makecache
- # 安装 EPEL(Extra Packages for Enterprise Linux )源
- [root@localhost yum.repos.d]# yum install -y epel-release
- # 再次清除系统 yum 缓存并生成新的 yum 缓存
- [root@localhost yum.repos.d]# yum clean all
- [root@localhost yum.repos.d]# yum makecache
- # 查看系统可用的 yum 源和所有的 yum 源
- [root@localhost yum.repos.d]# yum repolist enabled
PIP 源更新参考链接 https://developer.aliyun.com/mirror/pypi
YUM 源更新参考链接 https://developer.aliyun.com/mirror/centos
2. 开始安装
2.1 安装 Django
说明: 此台 CentOS IP 地址是 192.168.8.130(通过 NAT 映射, 可以上互联网)
- # 安装 django2.2 版本
- (py369) [python@localhost Python]$ pip install django==2.2
- # 查看已安装的版本信息
- (py369) [python@localhost Python]$ python -m django --version
- 2.2
- # 安装 MySQL 拓展
- (py369) [python@localhost Python]$ pip install mysqlclient
2.2 安装 MySQL 数据库
说明: 此台 CentOS IP 地址是 192.168.8.131(通过 NAT 映射, 可以上互联网)
安装与启动
提前下载如下安装包, 通过 winscp 上传到根目录下:
复制上面链接通过浏览器下载, 速度更快.
- # 安装 MySQL 及拓展
- [root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
- [root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
- [root@localhost ~]# yum -y install MySQL-community-server-5.7.31-1.el7.x86_64.rpm
- # 启动 MySQL 服务
- [root@localhost ~]# systemctl start mysqld.service
- # 查看 MySQL 服务状态
- [root@localhost ~]# systemctl status mysqld.service
... 此处省略字符
- # active 就表示正常在运行了
- Active: active (running) since Tue 2020-07-21 10:14:23 CST; 2s ago
... 此处省略字符
修改密码及创建数据库
- # 查找密码, uQjeSi?N(2zH, 这个就是缺省密码
- [root@localhost ~]# grep "password" /var/log/mysqld.log
- 2020-07-21T20:48:28.965616Z 1 [Note] A temporary password is generated for root@localhost: uQjeSi?N(2zH
- # 用缺省密码登陆数据库
- [root@localhost ~]# MySQL -uroot -p
- Enter password:uQjeSi?N(2zH # 输入密码
- # 修改密码
- MySQL> ALTER USER 'root'@'localhost' IDENTIFIED BY 'DevOps@2020';
- Query OK, 0 rows affected (0.01 sec)
- # 授权访问数据库
- MySQL> grant all on *.* to 'root'@'%' identified by 'DevOps@2020';
- Query OK, 0 rows affected, 1 warning (0.00 sec)
- # 刷新权限
- MySQL> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
- # 创建新的数据库
- MySQL> CREATE DATABASE IF NOT EXISTS devops default charset utf8 COLLATE utf8_general_ci;
- Query OK, 1 row affected (0.00 sec)
- # 查看已创建的数据库
- MySQL> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | devops |
- | MySQL |
- | performance_schema |
- | sys |
- +--------------------+
- 5 rows in set (0.00 sec)
- # 退出数据库, 修改配置文件, 结果如下所示:
- [root@localhost ~]# cat /etc/my.cnf |grep -v ^#|grep -v ^$
- [client]
- default-character-set = utf8
- [mysqld]
- datadir=/var/lib/MySQL
- socket=/var/lib/MySQL/MySQL.sock
- symbolic-links=0
- log-error=/var/log/mysqld.log
- pid-file=/var/run/mysqld/mysqld.pid
- character-set-server = utf8
- collation-server = utf8_general_ci
- # 重启数据库
- [root@localhost ~]# service mysqld restart
数据库连接验证正常:
Windows 10 下安装 MySQL 拓展并验证连接数据库:
C:\>pip install mysqlclient
备注: 我是通过 pycharm 导入模块 pymysql 进行测试.
3. 开始配置
各位先简单意淫下这种图, 应该有个初步的认识.
当一位屌丝打开浏览器访问某页面的时候, 输入 http://www.baidu.com, 然后回车;
django 后台 urls 就会匹配到链接, 可以把 urls 看作是 http 链接, 专业叫做路由;
说明: 不是我们攻城狮理解的路由协议哈.
urls 匹配到了就会在 View 视图查找代码, 然后做出响应;
说明: view 就是我们要写的 python 代码
template 简单理解就是 html 页面模板;
Model 简单理解数据库的一张表;
3.1 Django 简单配置
3.1.1 创建一个工程 (project) 为 devops:
- # 先安装个 tree 软件包
- [python@localhost ~]$ sudo yum install tree
- # 创建一个新的工程 project
- (py369) [python@localhost Python]$ django-admin startproject devops
- (py369) [python@localhost Python]$ tree devops
- devops
├── devops
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ ├── settings.cpython-36.pyc
│ │ ├── urls.cpython-36.pyc
│ │ └── wsgi.cpython-36.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
3.1.2 通过 PyCharm 远程同步服务器代码
说明: pycharm 将 django 项目下载到 Windows 电脑上进行编辑, 然后再实时同步到 CentOS 上, pycharm 编写代码方便.
打开 pycharm, 点击 Tools->Deployment->Configuration
创建新的服务名, 参考如下配置:
3)下载远端 django 的 project:
4)修改自动同步配置, Tools->Deployment->Options
3.1.3 在 pycharm 上直接修改 django 的配置文件:
- 1)devops->devops->settings.py:
- # 允许所有主机访问 django, 星号表示所有主机
- ALLOWED_HOSTS = ['*']
- # 增加数据库信息
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql',
- 'NAME':'devops',
- 'HOST':'192.168.8.131',
- 'USER':'root',
- 'PASSWORD':'root@123',
- 'PORT':3306,
- }
- }
- # 修改语言编码和时区
- LANGUAGE_CODE = 'zh-hans'
- TIME_ZONE = 'Asia/Shanghai'
2) 改完配置后, 会自动同步到远程 django 那里.
摘取 log 部分:
2020/3/27 23:07] Automatic upload completed in 33 ms: 1 file transferred (103.6 kbit/s)
3.1.4 启动 django 服务
1)通过命令启动: python manage.py runserver 0.0.0.0:8888
- (py369) [python@localhost devops]$ python manage.py runserver 0.0.0.0:8888
- Watching for file changes with StatReloader
- Performing system checks...
- System check identified no issues (0 silenced).
- March 27, 2020 - 23:45:14
- Django version 2.2, using settings 'devops.settings'
- Starting development server at http://0.0.0.0:8888/
- Quit the server with CONTROL-C.
2)打开浏览器, 输入 http://192.168.8.130:8888:
3)还可以进入后台权限管理系统, 输入 http://192.168.8.130:8888/admin
此时, 还没有创建超级管理员用户和密码, 不能够登陆.
4)接下来启动自带的 App admin
(py369) [python@localhost devops]$ python manage.py migrate
备注: 此命令会把系统自带的 admin App 数据库写入到 MySQL 中.
5)登陆数据库 mariadb, 看是否正常写入
- [root@localhost ~]# MySQL -u root -pDevOps@2020
- # 查看数据库
- MySQL> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | ddjsdb |
- | devops |
- | devops01 |
- | MySQL |
- | performance_schema |
- | sys |
- +--------------------+
- 7 rows in set (0.73 sec)
- # 切换到数据库 devops 中
- MySQL> use devops
- # 查看数据库 devops 中的表, 已经成功写入了
- MySQL> show tables;
- +----------------------------+
- | Tables_in_devops |
- +----------------------------+
- | auth_group |
- | auth_group_permissions |
- | auth_permission |
- | auth_user |
- | auth_user_groups |
- | auth_user_user_permissions |
- | django_admin_log |
- | django_content_type |
- | django_migrations |
- | django_session |
- +----------------------------+
- 10 rows in set (0.00 sec)
6)创建一个管理员用户
- (py369) [python@localhost devops]$ python manage.py createcachetable
- # 依次输入用户名, 邮箱地址, 密码
7)成功登陆后台管理系统
- # 再次启动 django
- (py369) [python@localhost devops]$ python manage.py runserver 0.0.0.0:8888
3.2 创建新的 App
3.2.1 创建新的 App hello
- (py369) [python@localhost devops]$ python manage.py startapp hello
- # 手工创建 urls.py 文件
- (py369) [python@localhost devops]$ touch hello/urls.py
- # 查看 App hello 树结构
- (py369) [python@localhost devops]$ tree hello
- hello
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py
3.2.2 pycharm 同步下载远程 hello 目录
说明: 方法同章节 3.1.2 一样.
3.2.3 修改 django 配置脚本
1) 修改 devops->devops->setting.py 配置
INSTALLED_APPS = [
... 此处已省略
- 'hello.apps.HelloConfig', # 方式一: 新增 hello App 信息
- 'hello', # 方式二: 新增 hello App 信息
- ]
2) 修改 devops->hello->views.py 配置
- from django.shortcuts import render
- from django.http import HttpResponse
- def index(request):
- return HttpResponse('<p>hello django</p>')
3) 修改 devops->hello->urls.py 配置
- from django.urls import path
- from . import views
- urlpatterns = [
- path('hello/', views.index, name='index'),
- ]
4)最后修改 devops->devops->urls.py 配置
说明: 此 urls.py 为根路由入口(即总入口).
第一种静态路由 urls 演示方法:
- from hello import views
- urlpatterns = [
- path('admin/', admin.site.urls), # 缺省
- path('hello/', views.index), # 新增
- ]
登陆浏览器, 输入 http://192.168.8.130:8888/hello/, 效果如下:
第二种静态路由 urls 演示方法:
- from django.urls import path,include # 新增, 导入 include 模块
- urlpatterns = [
- path('admin/', admin.site.urls), # 缺省
- path('hello/', include('hello.urls')), # 新增
- ]
登陆浏览器, 输入 http://192.168.8.130:8888/hello/hello, 效果如下:
来源: https://www.cnblogs.com/singvis/p/13364399.html