django 的常见问题与体会
一、 安装 MYSQL环境 出现的问题一下的问题 基于 pycharm 的商业版在win7下安装了python后,想安装python-mysql,使用pip安装出现如下问题:pip install MySQL-python_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No su...
一、
安装 MYSQL环境 出现的问题一下的问题 基于 pycharm 的商业版
在win7下安装了python后,想安装python-mysql,使用pip安装出现如下问题:
pip install MySQL-python
_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory error: command '"C:\Users\fnngj\AppData\Local\Programs\Common\Microsoft\Visual C ++ for Python\9.0\VC\Bin\amd64\cl.exe"' failed with exit status 2
但错误提示里缺少C++的相关环境
方法如下:
1.在http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python下载对应的包版本,如果是win7 64位2.7版本的python,就下载
MySQL_python-1.2.5-cp27-none-win_amd64.whl
然后在命令行执行pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl
当然需要在cmd下跳转到下载MySQL_python-1.2.5-cp27-none-win_amd64.whl的目录下
然后就安装成功了MySQL-python
第二部分 安装过程 出错的问题 解决方案 :
https://blog.csdn.net/u012882134/article/details/51934165
安装环境的步骤 :
1.cd 到安装的目录下
2. 打上所在的目录的硬盘 如(D:)
3. pip install 后面是下载的名字
4. 这时候会出现一个问题 SFrame-2.1-cp27-none-win_amd64.whl is not supported wheel on this platform 的问题
5. 第一步 查看自己的python是多少位的 如果是对应的版本
6. 第二步 修改 下载的 mysql的名字 如:
MySQL_python-1.2.5-cp36-none-win_amd64.whl
我的是 python36 所以对应的是 cp36 只需要修改这个名字 就行
其次 如果 不行 可以尝试修改的 64 改成32 一般都是与python 所对应的。
二、
最后一个问题 也是解决了很长时间的问题 :
1.在我用cmd导入了mysql的模块后 cmd 中有mysql 也是成功的 ,
并且 pycharm 中也是有mysql 的模块包的 在 seting中可以看到 但是 一定注意是但是
注意 mysql-python 的版本 如果时 1.25 是不支持 python3的解释器的 所以 需要对应的解释器
最后在django中的 settings 中用tool中的 run manage.py task 就会看到 django 不会报错了
2.当 配置URL 时候 又出现 模块导入的问题
比如 导入模块时候 一定 层级嵌套
如:我创建的应用名字是App ,用 import 来导入 就是一个一个文件的嵌套
import app.message.views as bv
//app 是我的应用名 其次是message 然后是views 我想导入的模块
urlpatterns = [
url(r'^getform/$',bv.getform)
]
3.在URL 配置时候还是出现了css 没有被渲染的问题 这是是static的问题 在settings中配置
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static')
]
在我准备创建数据库中的字段时候 除了一个错误:
mysql-python安装成功后执行run manage.py task.. 出现以下错误信息:
Error fetching command 'collectstatic': You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
Command 'collectstatic' skipped
解决方案:
settings.py中加入
STATIC_ROOT = '/static/'
在我添加 models 时候 每一个字段都有对应的类型限制
报错:
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
如果是这种 就是默认值的问题 加一个default = “”
注意:CharField 必须要用 字段的的限制 max_length 的限制
三、
在用pycharm中对于数据存储的问题 以及数据的提出问题 出现了一下问题
raise AppRegistryNotReady("Apps aren't loaded yet.")
解决方案:
1、由于里面的模块不必要的导入问题
2、想mysqldb 的导入 就不需要
还有 当我存储数据出现的问题 :
为什么 我用.save()存储了数据 在mysql 或 navicat 没有显示 这是因为函数没有调用
这时候想要显示 就得运行到存储的这一步 那怎么运行呢:
1 调试断点 断点必须打在 函数之下 然后给你ip 点击进去 匹配上你的URL的设置:
2 这时候 就会进入到你的前端页面 但是 及得 这时候 得刷新
3 然后 就可以看到断点可以继续往下调试 一直调试到你的save 的 界面 你就可以去mysql 或者 navicat 刷新就可以看到了
四、
在form表单提交时候 会出现forbidden 的错误这时候我们应该在 前端</form>之前加上一个
{% csrf_token %}
在form表单中是需要 加上action"/form/"注意这里面的 form 是定义的 一定得加上 两个斜杠
数据在pycharm中的手动存储的过程
views中的设置:
def getform(request):
user_message = UserMessage()//定义的类在models中的
user_message.name = 'pengliang' // 点后面的属性都是前端中的name 中的属性
user_message.message = 'he'
user_message.address = 'bengbu'
user_message.object_id = 'hello'
user_message.save() # 这是django 自带的 存储方式
return render(request,'message_for_users.html')
五、
在进行后端数据存储的过程 :
存储的id 一定不能重名 切记 已经出现两次了
其次 出现的这个问题:page not found 请求的错误 :
注意其中的URL 中的设置
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^form/$',bv.getform)
]
URL的 中的form的设置 一定要与 前端 的action(后端链接)中所跟的名字相同如
<form action="/form/"method="post"class="smart-green">
l六、
删除操作
# _*_ coding:utf-8 _*
from django.shortcuts import render
import MySQLdb
from .models import UserMessage
def getform(request):
# all_message = UserMessage.objects.filter(name="",address="")#这样就会取出想要的值
# all_message.delete()
#删除其中的filter中的内容
if request.method == "POST":
name = request.POST.get('name','')
message = request.POST.get('message','')
address = request.POST.get('address', '')
email = request.POST.get('email', '')
user_message = UserMessage()
user_message.name = name
user_message.message = message
user_message.address = address
user_message.email= email
user_message.save() # 这是django 自带的 存储方式
return render(request,'message_for_users.html')
七、 URL中有名字
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^form_go/$',bv.getform,name=‘go-form’) //在r中可以随便改名 这不影响 action中的操作
]
在HTML中的action =“{%URL 'go-form'%}”
注意URL中^和$ 并且 里面只要加东西 必须要有 /
七、 上传头像会需要安装pillow 的问题:
1、 You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
这类的问题的解决方案 是需要安装 另一个 10.0.1 方法如下:
直接运行命令:python -m pip install --upgrade pip
在我 用pycharm操作字段的时候出现了一个bug:
SystemCheckError: System check identified some issues:
ERRORS:
1.auth.User.groups:
(fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'UserProfile.groups'.
HINT: Add or change a related_name argument to the definition for 'User.groups' or 'UserProfile.groups'.
auth.User.user_permissions:
(fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'UserProfile.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'UserProfile.user_permissions'.
users.UserProfile.groups: (fields.E304) Reverse accessor for 'UserProfile.groups' clashes with reverse accessor for 'User.groups'.
HINT: Add or change a related_name argument to the definition for 'UserProfile.groups' or 'User.groups'.
users.UserProfile.user_permissions:
(fields.E304) Reverse accessor for 'UserProfile.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
# 解决方案:
因自己重新封装user为UserProfile故在 settings中 添加自己的
AUTH_USER_MODEL = "users.UserProfile"
八 、 在我创建后台管理系统的时候 遇到了 :用户名和密码输入不正确 :
解决方案:因为我打开了两个项目的运行 这样就会导致了 两个重复的问题 关闭一个项目的运行 即可。
在user app当中 后台管理系统是基于 user app 设置的。
在 user 的app 当中 设置一个管理器;
from .models import UserProfile//user 中的 定义的用户的类
class UserProfileAdmin(admin.ModelAdmin): //继承admin
pass
admin.site.register(UserProfile,UserProfileAdmin)# 设置一个管理器 注意后一个是继承前一个导入的user中的模块
九 、XAdmin 的安装:
出现了 版本的解码的问题:
django自带的admin后台管理功能太少。使用国人开发的xadmin后台,使用pip install xadmin安装在线包时,会出错,其中的README.rst是utf8格式,我们win7系统默认是gbk格式,导致安装失败。这个时候需要下载适合django2的xadmin安装包文件。下载地址不是xadmin的默认主分支,而是django2分支:
https://github.com/sshwsfc/xadmin/tree/django2
我已经下载,并替换了其中的README.rst文件,地址是:
链接: https://pan.baidu.com/s/1rux8sDK9thhbZ1qjwQg6kA 密码: iq4c
下载好后 解压后 把xadmin 拷贝到 项目的根目录下
更多推荐
所有评论(0)