1.做些软链接和virtualenv的基本使用:

ln -s /data/linkdood/im/vrv/python36/bin/python3.6 /usr/bin/python3
ln -s /data/linkdood/im/vrv/python36/bin/pip3.6 /usr/bin/pip
ln -s /data/linkdood/im/vrv/python36/bin/virtualenv /usr/bin/virtualenv
virtualenv /data/my_env1 -p /usr/bin/python3 创建
source /data/my_env1/bin/activate 激活
deactivate 熄火
rmvirtualenv project_env 删除
pip freeze
pip install Django
import django
django.VERSION

django-admin startproject monitor1 创建一个项目

python manage.py startapp show 创建一个app

2.初始化数据库

python manage.py migrate

一、报错:django.db.utils.NotSupportedError: URIs not supported

版本问题,sqlite3.7.5竟然没有URLs文件,sqlite3 -version

我的版本是3.6.20,更低,直接舍弃,转用MySQL(Linux环境)

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'information',
'USER': '用户',
'PASSWORD': '加过密的密码',
'HOST': '127.0.0.1',
'PORT': '11306',
}
}

二、再执行,报错:

django.core.exceptions.ImproperlyConfigured:

Error loading MySQLdb module.Did you install mysqlclient?

你认为这是让你去安装mysqlclient么?

这是让你去装python连接mysql数据库的驱动程序,首先,需要安装mysql的开发包

rpm -qa | grep mysql-devel
yum install mysql-devel
#python2.7:
sudo pip install MySQLdb
#python3.4:
sudo pip install PyMySQL
安装完成之后还是报这个错,
在Django中,连接数据库时使用的是 MySQLdb 库,这在与 python3 的合作中就会报刚才的错
解决办法:在 __init__.py 文件中添加以下代码即可
import pymysql
pymysql.install_as_MySQLdb()

三、报这个错:ModuleNotFoundError: No module named 'pymysql'

是因为我的真实环境安装了PyMySQL,虚拟目录没有安装。

四、报这个错;"Access denied for user 'django'@'localhost' (using password: YES)"

是因为授权有问题,应该这样授权(不是127.0.0.1):

grant all on information.* to django@localhost identified by 'qwerQWER1234!@#$';

五、执行,报错:django.db.utils.InternalError: (1366, "Incorrect string value:

'\\xE4\\xBC\\x81\\xE4\\xB8\\x9A...' for column 'name' at row 1"),

是因为字符集的原因,数据库默认是latin1,

查看数据库字符集:show variables like 'character%';

查看某个库的表的字符集:show table status from information;

首先修改字符集-vi /etc/my.cnf 添加 character_set_server=utf8,重启数据库,发现不行;

这是因为之前创建的这个information字符集是latin1,需要删除它重新建一个,重复之前的步骤即可解决.

六、执行,报错: django.db.utils.InternalError: (1049, "Unknown database 'information'")

这是因为数据库中没有这个表

create database information;
show grants;
查看当前用户拥有的权限,按理说这个django项目应该只拥有这一个表的权限:
grant all on information.* to django@localhost identified by 'django';

七、数据库常用操作:

alter user 'root'@'localhost' identified by 'Root123!@#'; 重置centos7-mysql5.7.24重置密码
CREATE USER 'django' IDENTIFIED BY 'qwerQWER1234!@#$'; 创建用户,其实不用创建,授权的时候直接就创建了
delete from user where user='django'; 删除用户

drop database information;

create database information; 下面这句仅当参考

CREATE DATABASE IF NOT EXISTS db default character set utf8 COLLATE utf8_general_ci;

delete from show_company where id=1;

update show_company set domaim_name='t2.linkdood.cn',ipaddress='1.1.1.2' where id=2;

insert into show_company (domaim_name,ipaddress,use_type,register_date) values ('*','*','*','*');

手动插入数据每个字段都要写,你django里有默认的都不行

在models中设置了install_date不能为空,用install.objects.create不加这个字段还是能创建,

install.objects.filter(id=1).delete()

install.objects.filter(id=1).update(result_type='failure')

联合唯一测试成功-unique_together = ('user', 'install_date')

3.解决无法访问的问题:

nohup python manage.py runserver 172.16.8.128:10000 &
启动后由于防火墙阻挡,添加策略:
iptables -I INPUT 3 -p tcp -m multiport --dports 10000,10001,10002 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT 3 -p tcp -m multiport --dports 10000,10001,10002 -m state --state NEW,ESTABLISHED -j ACCEPT
用-A添加到末尾还不行,因为第六条策略将匹配不到的全部拒绝,所以得用-I插队到第三条
访问时,因为没有用127.0.0.1,所以报错:
Invalid HTTP_HOST header:You may need to add '202.201.38.70' to ALLOWED_HOSTS.
可以用下面的两种方式任意一个:
ALLOWED_HOSTS = ['172.16.8.128', 'localhost', '127.0.0.1']
ALLOWED_HOSTS = ['172.16.8.128']

报错:Error: That IP address can't be assigned to.

是因为:我用这样的方式启动-python manage.py runserver 192.168.165.4:8000

windows本机IP是192.168.165.4,但我的虚拟机用的是NAT模式,虚拟机IP是192.168.150.10,

django不识别windows本机IP,你用127.0.0.1启动不会报错,但是windows访问不了,正确启动方式:

python manage.py runserver 192.168.150.10:8000 用虚拟机IP启动

4.时间问题:

auto_now无论是你添加还是修改对象,时间为你添加或者修改的时间,

auto_now_add为添加时的时间,更新对象时不会有变动。

from show.models import company

a=company.objects.create(name="中国建设银行003",identify="003")

数据库里的时间差8个小时,需要注释一行,修改一行,添加一行:

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
将True改为False
USE_TZ = False

将数据库中的时间格式化为常见格式:用python的方式这么实现:

a.date.strftime( '%Y-%m-%d %H:%M:%S' )

模板内置date这么玩:{{ date | date:"Y-m-d H:i:s" }}

5.在Django中如何正确完整地删除一个App(这个我没试过)

1.删除models.py
无论是删除一个单独的model还是删除整个App,都需要首先删除models.py文件中的模型。
./manage.py migrate your_app_name zero
删除models.py中的数据模型。
2.删除整个App文件夹
在settings.py的Installed Apps中移除该app。
在urls.py中移除该App相关内容。

6.virtualenvwrapper的基本使用

1.把所有的虚拟环境都放在一个地方;2.包装用于管理虚拟环境(创建,删除,复制);3.使用一个命令来环境之间进行切换。

pip install virtualenvwrapper
export WORKON_HOME=~/Envs #设置环境变量
mkdir -p $WORKON_HOME #创建虚拟环境管理目录
find / -name virtualenvwrapper.sh #找到virtualenvwrapper.sh的路径
source 路径 #激活virtualenvwrapper.sh
可能会报错:VIRTUALENVWRAPPER_PYTHON=/usr/bin/python...bulabula,python指向出错
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
重新source virtualenvwrapper
virtualenvwrapper.user_scripts creating /root/Envs/premkproject
...会创建一大堆命令
lsvirtualenv #列举所有的环境。
cdvirtualenv #导航到当前激活的虚拟环境的目录中,能够浏览它的 site-packages。
cdsitepackages # 直接进入到 site-packages 目录中。

每次要想使用virtualenvwrapper 工具时,都必须先激活virtualenvwrapper.sh,另外,如果创建前要将虚拟环境保存到Envs中,就要先设置一下环境变量:export WORKON_HOME=~/Envs,再搭建。貌似必须搭建到这个~/Envs目录下,要不然管理不到。

7.Django几个小点:

①模板中自定义style中class用点号'.',id用'#'

②values方法可以获取number字段的字典列表;values_list可以获取number的元组列表。

values_list方法加个参数flat=True可以获取number的值列表。

③models中有用到choices的,想在模板中获取到它对应的中文,用--obj.get_字段名称_display。

8.pycharm激活码地址--http://idea.lanyus.com/,日期只到19年5月4号,有时间可以破解个补丁...,

据说这两个网站可以免费破解win10,

技术流:https://blog.csdn.net/u014044812/article/details/82729151

激活码:https://blog.csdn.net/WangJiankun_ls/article/details/79475947?utm_source=blogxgwz1

安装Django时解决的问题-mysql及访问(附pycharm激活)的更多相关文章

  1. NPM全局安装软件包时解决EACCES权限错误

    NPM全局安装软件包时解决EACCES权限错误 Resolving EACCES permissions errors when installing packages globally npm WA ...

  2. 编译安装php时提示Cannot find MySQL header files的解决方法

    php的配置文件中有一行--with-mysql=/usr/local/mysql ,安装的时候提示:configure: error: Cannot find MySQL header files ...

  3. 【原创】RPM安装软件时解决依赖性问题(自动解决依赖型)

    满足以下3个条件才能自动解决依赖性: 1.使用rpmdb -redhat(在安装时会自动弹出依赖性错误) 2.所有互相依赖的软件都必须在同一个目录下面. 3.调用-aid参数.

  4. Mysql安装配置以及解决重装Mysql时忘记root password问题

    目录 1.Mysql安装以及环境变量配置 重装Mysql时忘记root password问题 1.Mysql安装以及环境变量配置 官网安装:​​​​​​https://www.mysql.com/ 按 ...

  5. ubuntu 安装Django MySQL

    1.安装步骤 我到公司的第一件事就是安装ubuntu系统,虽然我以前没有接触过ubuntu系统不过在网上找了一下资料感觉和安装其它系统也差不多(注:我是安装带图形界面的那个版本),还是比较轻松的搞定了 ...

  6. 安装opencms时遇到问题及解决方法

    1. MySQL system variable 'max_allowed_packet' http://blog.csdn.net/hqa_ii/article/details/6872367 安装 ...

  7. centos 安装教程 服务器配置教程 服务器中安装python 服务器中安装Django 安装MySQL 配置MySQL

    一 .解决python编译安装所需的软件依赖 yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel opens ...

  8. linux apache+php+mysql安装及乱码解决办法

    1.乱码解决方法 首先确认mysql数据库字符集设置正确,php页面字符设置正确,之后修改apache配制文件http.conf 注释掉以下字符 AddDefaultCharset UTF-8 此为乱 ...

  9. Python安装pywinauto时遇到error: The read operation timed out解决方法

    Python结合Pywinauto 进行 Windows UI 自动化,安装pywinauto时遇到的一些问题: 解决方法:很明显是链接超时国外网站你懂的V_P_N吧,直接通过报错信息的链接复制到浏览 ...

随机推荐

  1. 什么是Java内存模型中的happens-before

    Java内存模型JMM Java内存模型(即Java Memory Model , 简称JMM),本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序个各个变量(包括实 ...

  2. HTTP协议详解-基础知识

    HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.绝大多数的Web开发,都是构建在HTTP协议之上的Web应用. HTTP协议的主要特点可概括如下: 简单: ...

  3. Log4J的配置与使用详解

    一.简介 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护 ...

  4. 在Xcode中编辑运行 Python 脚本

    http://www.zhihu.com/question/19872198 打开Xcode,File->New->Project选中OS X下的Other点击External Build ...

  5. ios之UITextfield

    //初始化textfield并设置位置及大小   UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 13 ...

  6. iptables(1)工具详解

    一. iptables 查看链表,创建链表,类命令 1. iptables [-t table] -N chain : 创建一条自定义规则的链 1 2     # iptables -t filter ...

  7. Javaweb开发之路

    本文作者:DavidLin 欢迎转载,但请保留文章原始出处→_→ 本文地址:http://www.cnblogs.com/univeryinli/p/programming-skill-yinli.h ...

  8. 如何用纯 CSS 创作牛奶文字变换效果

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/MGNWOm 可交互视频教 ...

  9. Python学习网站推荐

    B站是目前本人看到的最好的免费学习Python的网站 黑马程序员- https://space.bilibili.com/37974444?spm_id_from=333.338.viewbox_re ...

  10. (转)浅谈测试驱动开发(TDD)

    测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量.本文从开发人员使用的角度,介绍了 TDD 优势.原理.过程.原则.测试技术.Tips 等方面. ...