当前位置: 首页 > news >正文

error msb6006: “cmd.exe”已退出 代码为1_Django安装与简单配置(1)

[toc]


码好python的每一篇文章.


大家好!又有一段时间没更新文章了,没错,是真的忙了。想要写一篇文章,确实要花几天时间的功夫,因为要保障文章的质量。

后面的文章我会通过写些基础理论和实战文章,毕竟干技术的,光看理论确实会没那么多耐心,总之,我会穿插一些,保证各位看官满意为止。

1. 环境准备

a3b6adb5a4338c297c229ed60cbad8c7.png
序号 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源更新参考链接

YUM源更新参考链接

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上传到根目录下:

    http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-server-5.7.31-1.el7.x86_64.rpm

    复制上面链接通过浏览器下载,速度更快。

# 安装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

undefined_b.gif

备注: 我是通过pycharm导入模块pymysql进行测试。

3. 开始配置

3dbedf97f01ff99e0a8239777ef2df97.png

各位先简单意淫下这种图,应该有个初步的认识。

  • 当一位屌丝打开浏览器访问某页面的时候,输入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项目下载到window电脑上进行编辑,然后再实时同步到CentOS上,pycharm编写代码方便。

1) 打开pycharm,点击Tools->Deployment->Configuration

4259a6814d67eab87bcf1c322f5abf5c.png

2) 创建新的服务名,参考如下配置:

10e3e9edc043ffce3ccc08ce1565f984.png

3)下载远端django的project:

67c21e65db2ff32a9afdbf12c88b61d1.png

4)修改自动同步配置,Tools->Deployment->Options

2b3e82d14d3ec9115efe87d20f7c880c.png

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

16b17ae7b7939b3e4ebf3b7c23a2a186.png

3)还可以进入后台权限管理系统,输入http://192.168.8.130:8888/admin

eb40bb5989ca3283e39d3b80a11ddc9d.png

此时,还没有创建超级管理员用户和密码,不能够登陆。

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

c460c3c96d4342884283ae9c96e60ac7.png

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一样。

113b9d94ea21a88e49eb62418cd3d609.png

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/,效果如下:

87f4f61f2a986bb584e1ca6fed198f95.png

第二种静态路由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,效果如下:

19fa5a9057e65b1e5482496eca0818d9.png

如果喜欢的我的文章,欢迎关注我的公众号:点滴技术,扫码关注,不定期分享

185992846b6edbb5c9f0e7083d48b5a2.png

相关文章:

  • mysql 5.6.3 current_timestamp_mysql5.6以上版本: timestamp current_timestamp报1064/1067错误
  • mysql导入导致锁表_mysql 导出数据导致锁表
  • mysql order by 报错_mysql 高版本order by 报错解决方案
  • apache mysql windows_windows上apache+php+mysql环境部署
  • mysql5.6吞吐量_MySQL 5.5和MySQL 5.6的吞吐量测试
  • java中while循环_Java中do...while循环和for循环还有死循环
  • spark向MySQL刷新一个字段_Spark 实现MySQL update操作
  • vb将指针指向内容传数组_C语言指针
  • mysql json链接表_将JSON插入MySQL表中?
  • mysql 开发规范_mysql 开发标准规范
  • python colorbar xtick locator_python matplotlib colorbar设置tick formator / locator更改刻度标签...
  • python里data显示无效的语法_语法错误def Data(path)的语法无效
  • echo mysql_mysql · Echo
  • mysql root 密码修改 mac_Mac平台重新设置MySQL的root密码
  • mysql查询1970年以后出生的人_1970年属狗女一生命运,70年属狗人一生灾难有哪些...
  • 【译】JS基础算法脚本:字符串结尾
  • JS 中的深拷贝与浅拷贝
  • ES10 特性的完整指南
  • IOS评论框不贴底(ios12新bug)
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Objective-C 中关联引用的概念
  • pdf文件如何在线转换为jpg图片
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Spark学习笔记之相关记录
  • spring + angular 实现导出excel
  • zookeeper系列(七)实战分布式命名服务
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 当SetTimeout遇到了字符串
  • 京东美团研发面经
  • 前端之React实战:创建跨平台的项目架构
  • 前嗅ForeSpider采集配置界面介绍
  • 如何合理的规划jvm性能调优
  • 如何使用 JavaScript 解析 URL
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 线性表及其算法(java实现)
  • 小程序开发中的那些坑
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 【云吞铺子】性能抖动剖析(二)
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ###C语言程序设计-----C语言学习(3)#
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十八)三元表达式和列表解析
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • *** 2003
  • .NET : 在VS2008中计算代码度量值
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET 读取 JSON格式的数据
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 中的轻量级线程安全
  • .netcore如何运行环境安装到Linux服务器
  • .NET中使用Protobuffer 实现序列化和反序列化