找到安装python的目录,你的Python的安装位置\Lib\site-packages;
在cmd中输入pip install django,打开python的安装目录下可看到...\Lib\site-packages,将......\site-package\django\bin添加至环境变量Path中(直接在菜单栏中搜索环境变量即可)
命令行:输入:
(1)cd <这里是你要存放django-admin创建的项目的路径>
(2)django-admin startproject xxxxx<项目名称>
再次File→New Project
选中刚刚的Django目录,出现提示
选择Yes。
运行manage.py
failed to Connect to MySQL at localhost:3306 with user root提示你的密码不正确,需要输入正确的密码,如果忘记,需要重置密码。
重置密码:
1.打开任务管理器查看MySql服务是否启动,如果已启动则先将其停止
2. 找到MySql目录下的my.ini文件
(如何找到my.ini文件:
首先,打开我的电脑,点击最上面的“查看”按钮
在打开的“查看对话框”中,找到“隐藏的项目”,把它勾选上。这样,隐藏的文件夹就显示出来了。
然后回到C盘,会发现C盘多了一个programdata,打开它
)
3.打开该文件,找到里面的[mysqld],然后在这个下面添加skip-grant-tables,添加完后保存文件
4.重新进到任务管理器将MySQL服务启动起来
5.以管理员身份运行cmd
注意这里必须以此方式用管理员身份运行cmd,不能用win+R输入cmd运行,否则会出现 “'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件”的错误。
6.输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入。
7.进入mysql数据库:
mysql> use mysql;Database changed
8.给root用户设置新密码:update mysql.user set authentication_string=password('输入新密码') where user='root';
(填写:mysql> update user set password=password("123456") where user="root";会报错ERROR 1054(42S22) Unknown column 'password' in ‘field list’,因为5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string)
提示:Query OK, 1 rows affected (0.04 sec)Rows matched: 1 Changed: 1 Warnings: 0
PS:新密码,用户可根据自己需要修改成自己的密码
9.打开之前的my.ini文件将添加的"skip-grant-tables"这行删除
10.打开任务管理器重启MySQL服务。接着我们就可以用刚设置的密码 “123456”连接数据库了。
(懂得都懂,不必多说)
是因为django版本问题,可以直接升级到2.x.x版本,django2.0以上才支持 from django.urls import path。django1.x是 from django.conf.urls import url。升级Django版本
解决方案
解决方案:
定义外键的时候需要加上 on_delete=;
即:contract = models.ForeignKey(Contract, on_delete=models.CASCADE)
原因如下:
django 升级到2.0之后,表与表之间关联的时候,必须要写on_delete参数,否则会报异常:
TypeError: init() missing 1 required positional argument: ‘on_delete’
on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为
on_delete=models.CASCADE, # 删除关联数据,与之关联也删除
on_delete=models.DO_NOTHING, # 删除关联数据,什么也不做
on_delete=models.PROTECT, # 删除关联数据,引发错误ProtectedError
# models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)
on_delete=models.SET_NULL, # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)
# models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')
on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)
on_delete=models.SET, # 删除关联数据,
a. 与之关联的值设置为指定值,设置:models.SET(值)
b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
由于多对多(ManyToManyField)没有 on_delete 参数,所以以上只针对外键(ForeignKey)和一对一(OneToOneField)
{% load staticfiles %}
{% load adminstatic %}
是在 Django 2.1的方法, 在 Django 3.0已经修改了
{% load staticfiles %}
{% load static from staticfiles %}
{% load adminstatic %}
需要修改成
{% load static %}