django框架详解,python之django框架前端与后端的结合

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: