django框架详解,python之django框架前端与后端的结合
[1]建立应用程序建立应用程序命令:
Python manage.py startapp应用程序名称它将生成以下文件:
Admin.py:管理站点模型的声明文件,默认为空。Apps.py:应用信息定义文件。其中生成了Appconfig类,用于定义元数据,如应用程序名称。迁移:用于稍后定义参考迁移函数。Models.py:添加模型层数据类文件。测试代码文件。Views.py:定义URL响应函数。如果遇到没有名为 users 的模块之类的错误,首先检查路径和包名是否有问题,然后检查我们的用户是否配置在项目的settings.py的INSTALLED_APPS中。最后,记住下面的命令。
#将我们自己定义的包添加到python搜索环境变量。
Sys.path.insert (0,OS.path.join (base _ dir, apps)) 迁移同步修改models.py中的字段后,当数据表中的结构需要修改时,只需在终端中执行以下迁移命令即可。
python manage.py进行迁移
Python manage.py migrate什么是迁移?将模型转换成对数据库的操作称为迁移。
[2] Xadmin使用官网地址:GitHub,http://sshwsfc.github.io/xadmin/地址:https://github.com/sshwsfc/xadmin
下载完源码包压缩文件后,我们可以解压压缩文件,得到源码包。
解压下载的xadmin,并将里面的xadmin文件夹复制到我们项目的根目录下。
创建extra_apps以放置第三方应用,并将xadmin移动到我们的extra_apps。
将extra_apps标记设置为root_source。
在设置中配置extra_apps的搜索路径。
#将我们自己定义的包添加到python搜索环境变量。
sys.path.insert(0,os.path.join(BASE_DIR, apps ))
Sys.path.insert (0,OS.path.join (base _ dir, extra _ apps)) 打开cmd,进入虚拟环境,安装xadmin依赖包。依赖包的版本在xadmin文件夹下:requirements.txt,其中一个包版本改为2.1 django-formtools==2.1,否则。
pip install-r requirements.txt-I https://pypi.douban.com/simple/,这需要在requirements . txt文件的当前路径中。
pip-r requirements . txt-I https://pypi.douban.com/simple/将xadmin和crispy _ forms添加到我们的installed_apps中
INSTALLED_APPS=[
django.contrib.admin ,
django.contrib.auth ,
django.contrib.contenttypes ,
django.contrib.sessions ,
django.contrib.messages ,
django.contrib.staticfiles ,
用户.应用程序.用户配置,
courses . apps . courses配置,
orgs.apps.OrgsConfig ,
operations . apps . operations config ,
xadmin ,
脆皮_形态,
验证码,
DjangoUeditor ,
] 在URLs.py文件中注释掉我们原来的admin,改成我们的xadmin URL (r xadmin/,xadmin.site.URLs),
再次执行迁移同步,以生成xadmin所依赖的表。
最后,创建一个超级管理员来验证xadmin是否安装成功。
这里需要注意的是,在这里,我将xadmin解压到python安装目录的Lib中,在下面的路径中执行了操作命令pip install-r requirements . txt-I https://pypi.douban.com/simple/。
[3]一些错误没有名为“widgets”的模块
DjangoUeditor基于Python 2.7,对Python3的支持有问题。widgets.py文件出错,无法导入。解决方法是修改widgets.py或者采用互联网上DjangoUeditor3的修改版。
Github搜索DjangoUeditor3,本地克隆github地址。复制文件夹中的DjangoUeditor文件夹,放在虚拟环境中的python3/Lib/site-packages/文件夹下,或者直接放在你的Django项目下。
最后记得重启Django。
python manage . py runserver_ _ init _ _()缺少1个必需的位置参数:“on_delete”
django2.0以后,定义外键和一对一关系时,需要添加on_delete选项。该参数是为了避免两个表之间的数据不一致,否则会给出错误:
# add on_delete=models。串联
城市信息=模特ForeignKey(CityInfo,verbose_name=所在城市,on_delete=models .级联)on_delete有级联、保护、SET_NULL、SET_DEFAULT、SET()五个可选择的值
级联:此值设置,是级联删除保护:此值设置,是会报完整性错误SET_NULL:此值设置,会把外键设置为空,前提是允许为零。设置默认值:此值设置,会把设置为外键的默认值SET():此值设置,会调用外面的值,可以是一个函数无法从" django.utils "导入名称“六”。
点安装六个然后进入大蟒安装目录下的站点包,将six.py复制到django/utils即可。
或者降低版本:pip安装django==2.2.6
或者修改
从django.utils导入六个
# 修改为
导入6个没有名为 django.core.urlresolvers 的模块
django2.0把原来的django.core.urlresolvers包更改为了django.urls包,所以我们需要把导入的包都修改一下就可以了。
即修改为如下:
从django.urls导入NoReverseMatch,反向仪表板. py报错类型错误:init()接受一个位置参数,但给出了6个
# 原始
forms.Field.__init__(self,必选,小部件,标签,初始,help_text
*args,**kwargs)
# 修改为
forms.Field.__init__(self)无法导入名称" python_2_unicode_compatible "
从django.utils .编码导入python _ 2 _ unicode _兼容,smart_text
导入错误:无法导入名称" python_2_unicode_compatible "修改为:
从6个导入python _ 2 _ unicode _兼容
从django.utils .编码导入智能_文字无法导入姓名"漂亮的名字"
从django .表单.表单导入漂亮的名字
导入错误:无法导入名称"漂亮的名字"修改为:
从django.forms导入表单没有名为“姜戈。贡献。静态文件。模板标签"的模块
从姜戈。贡献。静态文件。模板标签。静态文件导入静态
ModuleNotFoundError:没有名为“姜戈。贡献。静态文件。模板标签"的模块修改为:
从django.templatetags .静态导入静态无法导入名称"登录"
从django.contrib.auth.views导入登录
导入错误:无法导入名称"登录"修改为:
从django.contrib.auth导入验证、登录、注销无法导入名称" FieldDoesNotExist "
从django . db . models . field导入字段不存在
导入错误:无法导入名称" FieldDoesNotExist "修改为:
来自django.core.exceptions导入字段不存在(11)无法导入名称"查询术语"
从django.db.models.sql.query导入LOOKUP_SEP,查询_术语
导入错误:无法导入名称"查询术语"修改为:
从django.db.models.sql.query导入LOOKUP_SEP,查询(12)没有名为 django.contrib.formtools 的模块
从姜戈。贡献。表单工具。巫师。仓库导入获取_存储
ModuleNotFoundError:没有名为" django.contrib.formtools "的模块解决:
# 卸载旧版本
点卸载django-表单工具
# 安装新版本
点安装django-formtools(13)无法导入名称"密码重置确认"
从django.contrib.auth.views导入密码_重置_确认
导入错误:无法导入名称"密码重置确认"修改:
从django.contrib.auth.views导入PasswordResetForm(14)属性错误:"设置"对象没有属性"中间件_类"
修改 xadmin\plugins\language.py ,第24行,将
如果设置。语言和设置中的“姜戈。中间件。区域设置。本地中间件.中间件_类:修改为:
如果设置。语言和设置中的“姜戈。中间件。区域设置。本地中间件.中间件:(15)无法导入名称"默认格式"
从导入导出管理导入默认格式、跳过管理日志、临时存储类
导入错误:无法导入名称"默认格式"修改:
从导入导出格式基本格式导入默认格式
从导入_导出.管理导入进口混合蛋白(16)没有名为"姜戈雷迪斯"的模块
找不到后端" django_redis.cache.RedisCache ":没有名为"姜戈雷迪斯"的模块解决:
pip install django_redis(17)在包括()中指定名称空间,而不提供 app_name
不支持在不提供app_name的情况下在包括()中指定命名空间。在中设置app_name属性
包括的模块,或者改为传递包含模式列表和app_name的2元组。
# 原先格式
url(r^users/,include(users.urls,namespace=users)),
# 修改后格式
url(r^users/,include((users.urls,users),namespace=users)),(18)django。db。模特。自动字段
xadmin .UserWidget:(模型W042)未定义主键类型时使用的自动创建的主键,默认为django.db.models.AutoField .
提示:将默认_自动_字段设置或xadminconfig。默认_自动_字段属性配置为指向自动字段的子类,例如django.db.models。BigAutoField .
设置文件添加如下内容:
DEFAULT _ AUTO _ FIELD= django。db。模特。“自动字段”(19)自定义错误页面
?(网址E007)自定义手柄404视图"用户.视图.处理器_404 "未采用正确数量的参数(请求,异常)。
原始配置:
处理程序404=用户。观点。处理程序_ 404
处理程序500=用户。观点。处理程序_ 500
定义处理程序_404(请求):
返回渲染(请求, handler_404.html )
定义处理程序_500(请求):
返回渲染(请求, handler_500.html )修改函数为如下:
定义处理程序_404(请求,异常=无):
返回渲染(请求, handler_404.html ,状态=404)
定义处理程序_500(请求,异常=无):
return render(request, handler_500.html ,status=500)(20)"静态文件"不是已注册的标记库。必须是以下之一:
"静态文件"不是注册的标记库。必须是以下之一:
管理列表
管理_修改
管理网址
躲藏
脆皮_表格_字段
脆_形式_过滤器
crispy _ forms _ tags
脆皮_形态_效用
i18n
l10n
原木
静电
坦桑尼亚
xadmin_tags解决:
{% load staticfiles %}
改成
{% load static %}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。