Django运行服务报NameError: name ‘os‘ is not defined,pycharm连接Django sqlite3 数据库时没有As Data Source选项

1、Django运行服务报NameError: name ‘os‘ is not defined

重现步骤:新建Django项目,自动生成各种文件,添加视图函数(就是helloworld而已),配置url,

运行python manage.py runserver时,报错:

'DIRS': [os.path.join(BASE_DIR, 'templates')         (其实仔细看这句话就知道少OS了)

NameError: name 'os' is not defined

仔细查看settings.py文件中:
这里调用了os模块,但是文件头并没引用os模块(不知道为什么pycharm这么坑)

解决办法:在settings.py文件头加上:

 

2、Pycharm连接Django sqlite3 数据库时没有As Data Source选项

在连接Django自带的sqllite数据库时,右键数据库点击As Data Source后,但是有很多人发现自己的pycharm没有As Data Source这一选项。

这就需要自己手动连接数据库。
一.找到自己的数据库
点开右面的Database,点击+号,选择Data Source,选择SQLite.

二.找到并连接
浏览目录,找到Django项目自建的数据库,在和manage.py同级目录里,默认名为db.sqlite3,点击ok。

测试连接,可能会下载文件,测试成功后点击应用即可连接数据库。

数据库连接成功。

在PYCHARM的终端下运行:python manage.py migrate

进行数据迁移,生成sqlite3数据库,然后再打开main就会看到生成的表:

 

以下是Django初始化内容记录,大家可不用往下看:

使用pycharm编写Python脚本的时候,先选中需要注释的行,然后同时按键盘右下角的----Ctrl和Ctrl键正上方的‘/’键---可以实现多行注释

设置项目:django-admin startproject XXX

设置APP:django-admin startapp AppXXX (或python startapp AppXXX)

设置settings.py:

添加APP到INSTALLED_APPS下

设置时区:

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False

设置所有人可访问

ALLOWED_HOSTS = ['*']

设置MYSQL数据库连接

伪装mysqldb:
pip install pymysql

import pymysql
pymysql.install_as_MySQLdb()

mysql -uroot -p

create database modeldb;

数据库连接MYSQL

时区加:Asia/Shanghai

python manage.py makemigrations App

执行命令python manage.py makemigrations报错

TypeError: __init__() missing 1 required positional argument: 'on_delete'
定义外键报错

解决办法

字段名称 = models.ForeignKey('表名', on_delete=models.CASCADE)
on_delete=models.CASCADE 在 django2.0之前有默认值,之后版本就需要显式指定

python manage.py migrate

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值