当前位置: 首页 > 网络应用技术

Django如何使用MUI(2023年的最新答案)

时间:2023-03-09 02:29:09 网络应用技术

  简介:许多朋友询问了Django如何使用MUI。本文的首席执行官注释将为您提供一个详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  首先,我们创建一个新的移动应用程序。

  接下来,让我们看一下警报功能的写作以及其发出的效果。

  然后,让我们看一下确认功能的写作以及效果如何出现。

  让我们看一下及时功能的写作以及效果如何发出。

  最后,让我们看一下吐司功能的写作以及它出现的有效性。(一个可以自动消失的对话框,非常常用)

  6

  当然,还有两种用法,即mui.closepopup()[关闭外层外层对话框]和mui.closepopups()[关闭所有对话框],因为它不是常用的,因此不会被引入。

  使用Django 2.2。

  一般而言,使用指令NPM Run构建以获取包装的包装,然后将其交给NGINX进行路由转换(配置的位置 /静态)。需要的是配置Django上的可访问index.html路径。

  但是(?),我想在本地测试,也就是说,没有nginx,并且debug = true环境尚未测试。结果,没有欢迎页面进入主页。打开开发工具并表明这就是它的样子:

  解决方案:只需在installed_apps中注册VUE Engineering文件夹即可。

  如果您不注册该应用程序,那么即使您编写文件夹,Django也不会扫描(根目录除外):

  如上所示,我在staticfiles_dir包装的Blogfro(即VUE文件目录)之后写了静态文件夹,但是输入主页时仍然是白屏幕。

  白屏幕的路径表示模板模板是正常的,但是仍然无法加载静态文件。此需要注册的应用程序。注册后,您可以扫描静态文件。

  注册后,已成功显示主页:

  当没有加载该应用程序时,我发现CSS和JS文件放在已注册应用程序(BackND)的静态文件夹中,可以正常显示。此验证静态文件夹的扫描是否需要注册的应用程序。

  以我的项目为例:

  在调试模式下,您只需要static_url和staticfiles_dir。

  根据Django文档,static_url是路径的地图。服务器将考虑将其匹配的路径,然后输入staticfiles_dir指定的目录以查找,并始终尝试返回匹配的第一个结果匹配。

  在生产模式(封闭的调试)中,对静态文件的引用将失败。换句话说,对于性能考虑,我们不将Django服务器用于静态资源请求。我们经常使用其他反向服务器进行发送。

  对于此考虑,Django使用CollectStatic指令将所有staticfiles_dir下的所有文件打包到static_root.dre.ter之后,您只需要配置此静态文件夹即可应用此静态文件夹。

  之后,您可以直接开发Blogfro。开发完成后,使用NPM Run Build,然后直接打开DJANGO服务器进行测试。包装在线时,将内容复制到static_root下方,然后将内容复制到python manage.py collection.plectionstatic(主要是收集admin)资源。

  实际上,问题并未完全解决,但这是由VUE + Django引起的。

  Django使用其自己的静态路径索引,这与VUE有必要冲突。要处理它,必须调试它。

  使用django和vue意味着您要将前端和后端分开,因此开发过程本身是隔离的。双方的交集应为最后一个部署(VUE包装,Django打开生产模式,并且反效力师打开(例如nginx)。这次,静态文件夹属于反服务器管理,不会出现此类问题。

  由于我只有一个人(太痛苦),因此对Debug Vue和Django的需求同时引起了上述问题。

  首先从官方网站下载HBuilder,然后使用该软件创建HTML5的移动应用程序项目。您可以访问官方网站以查看相应的文档。

  下一步是如何将书面Hbuilder引入我们的Android项目。

  首先下载SDK的HBUILER离线包装Android版本。SDK中有一个Hbuilder-Integrate项目。我们将使用它。接下来,它开始~~~~~

  首先使用Android Studio创建一个新项目。

  1.导入JAR软件包,您可以从Hbuilder-Integrate项目的LIB中进行选择。可以从SDK中的功能Android.xl导入哪个JAR软件包。

  2.添加应用程序资源:

  ①在项目目录中创建资产文件夹,然后在资产目录中添加应用程序目录

  ②在应用程序目录中创建应用程序ID目录

  ③在应用程序ID目录中创建www目录

  ④将应用程序资源和应用程序配置文件(subest.json)复制到www目录

  “ H5B1EA68D”目录的名称是Subtest.json应用程序中的ID名称,必须是一致的。

  添加control.xml文件和properties.xml文件到Assets-DATA目录

  那

  control.xml文件的属性值是hbuileder应用程序的appid,它必须完全是一个在subtest.json应用程序中具有ID值的appid。

  事件;Appver是一个应用程序编号。对于应用程序资源的升级,有必要

  名称值完全相同;版本值是基本版本号(plus.runtime.innerversion),请勿随意修改。

  适当的文件用于对应于JS类名称和Android软件包名称之间的相应关系。用户可以根据开发项目使用的插件添加或删除文件。

  可以从Hbuilder-Contegrate项目中复制两个文件以进行修改。

  3.将所需的资源文件复制到可绘制和布局文件夹:

  4.修改AndroidManifest.xml文件

  艺术

  版本和宣言中的作品

  代码值是一致的;版本名称和清单中的版本 - json-

  名称值是一致的。功能权限由Hbuiler-Integrate项目中的AndroidManifest.xml文件添加。

  5.添加代码汇编测试

  请注意,必须将Rinfomation与其目录一起复制到项目中。

  有关详细信息,您可以查看文档

  在这一点上,我写的示例可以下载并参考。它是用Android Studio编写的,与Eclipse相同。

  此外,如果您想在Android项目中介绍由HBUILEDER编写的多个应用程序模块,请首先将资源复制到资产目录,就好像在Control.xml文件中配置了多个应用程序一样,您可以引用多个模块。

  您可以直接使用Django的模型,在setter.py中配置mySQL信息,然后在程序中使用MySQL,例如定义类。非常方便。

  如果解决问题,请采用它!

  如果没有解决,请继续询问

  数据库= {

  '默认': {

  '引擎':'django.db.backends.sqlite3',#add'postgresql_psycopg2','mysql','sqlite3'或oracle'。

  'name':'demo.db',#或数据库文件的路径,如果使用sqlite3。

  #下面的设置未与sqlite3一起使用:

  “用户”:'',

  '密码': '',

  “主机”:',#通过域插座为Localhost的#空位或通过TCP的Localhost的“ 127.0.1”。

  '端口':'',#设置为默认的字符串。

  }

  }

  instasted_apps =((

  'django.contrib.auth',

  'django.contrib.contenttypes',

  'django.contrib.sessions',

  'django.contrib.sites',

  'django.contrib.messages',

  'django.contrib.staticfiles',

  #取消注释下一行以启用管理员:

  #'django.contrib.admin',

  #取消注释下一行启用管理文档:

  #'django.contrib.admindocs',

  '南',

  “学习”,

  '图书',

  治愈

  1. Django形式很强大

  一些Django项目不会直接呈现HTML。第二个是API框架的形式,但您可能不会期望Django形成。Django形式不仅用于以这些API形式呈现HTML。最强的位置应该是其验证能力。让我们介绍几种与Django形式结合的模式:

  2.模型1:ModelTelt和默认验证

  最简单的模式是Modelform和Model中定义的默认验证方法的组合:

  #myApp/views.py

  来自django.views.gneric import createview,updateView

  从括号。视图导入loginrequiredmixin

  从.models导入文章

  类ArticleCreateAteview(LoginRequiredMixin,CreateView):

  型号=文章

  fields =('title','slug','review_num')

  class ArticleUpDateView(LoginRequiredMixin,UpdateView):

  型号=文章

  fields =('title','slug','review_num')

  如您在上面的代码中所见:

  ARTICLECREATEATEVIEW和ARTICEUPDATEVIEW设置模型作为文章

  两者都可以根据文章模型自动生成模态

  这些模型的验证基于文章模型中定义的字段转换

  3.模式2,修改和验证模型

  在上面的示例中,如果我们希望每个文章的开始都是“新”,那么我们该怎么办?首先,我们需要建立自定义验证(验证器):

  #utils/valivator.py

  来自django.core.corpeptions导入验证eRROR

  def value_begins(value):

  如果不是value.startswith(u'new'):

  提高验证Error(u'must从new'开始)

  可以看出,Django中的验证程序是不符合条件并抛出验证的功能。为了促进重复使用,我们将它们放入验证器中。

  接下来,我们可以将这些验证器添加到模型中,但是为了方便变化和维护,我们更倾向于加入该模型:

  #myApp/forms.py

  从django导入表格

  从utils.validators导入validate_begin

  从.models导入文章

  班级文章(forms.modelform):

  dev __init __(self, *args,** kwargs):

  Super(Artical Form,Self).__ Init __(8args,** kwargs)

  self.fields [“ title”]。验证者。

  元类:

  型号=文章

  Django的编辑视图(UpdateView和CreateView等)的默认行为基于为自动创建Modelform的模型属性。因此,我们需要调用自己的模型来涵盖自动创建:

  #myApp/views.py

  来自django.views.gneric import createview,updateView

  从括号。视图导入loginrequiredmixin

  从.models导入文章

  来自.forms导入文章

  类ArticleCreateAteview(LoginRequiredMixin,CreateView):

  型号=文章

  fields =('title','slug','review_num')

  form_class = ArtistForm

  class ArticleUpDateView(LoginRequiredMixin,UpdateView):

  型号=文章

  fields =('title','slug','review_num')

  form_class = ArtistForm

  4.模型三,使用form()和clear_field()方法

  如果我们要以形式验证多个字段,或验证现有存在中涉及的数据,则需要使用clean()和clear_field()表单的方法。多种密码与password2相同2:

  #myApp/forms.py

  从django导入表格

  类Myuserform(forms.form):

  用户名= forms.charfield()

  密码= forms.charfield()

  passwass2 = forms.charfield()

  def clean_password(self):

  密码= self.clenet_data ['密码']

  如果Len(密码)= 7:

  提高表格。ValidationError(“密码不安全”)

  返回密码

  def Clean():

  clear_data = super(myuserform,self).clean()

  密码= clear_data.get('密码','')

  passwass2 = clear_data.get('password2','')

  如果密码!=密码2:

  提高表格。ValidationError(“密码不匹配”)

  返回clean_data

  应当指出的是,在验证或修改后,必须将Clean()和Clean_field()()()的最后值返回到值。

  5.模式4,Modelform中的自定义字段

  我们经常以形式遇到默认验证。例如,模型中有许多不需要的项目,但是对于完整的信息,您希望必须填写这些字段:

  #myApp/models.py

  来自django.db导入模型

  类Myuser(Models.Model):

  用户名= models.charfield(max_length = 100)

  密码= models.charfield(max_length = 100)

  地址= models.textfield(空白= true)

  phone = models.charfield(max_length = 100,空白= true)

  为了满足上述要求,您可以直接添加字段以重写模型:

  #请不要这样做

  #myApp/forms.py

  从django导入表格

  来自.models导入myuser

  类Myuserform(forms.modelform):

  #请不要这样做

  地址= forms.charfield(必需= true)

  #请不要这样做

  phone = forms.charfield(必需= true)

  元类:

  模型= Myuser

  请不要这样做,因为这违反了“不重复”的原则,并且在许多复制和粘贴之后,代码将变得复杂且难以维护。正确的方法应该是使用__init __():

  #myApp/forms.py

  从django导入表格

  来自.models导入myuser

  类Myuserform(forms.modelform):

  def __init __(self, *args,** kwarg):

  super(myuserform,self).__ init __(*args,** kwargs)

  self.fields ['address']。必需= true

  self.fields ['Phone']。必需= true

  元类:

  模型= Myuser

  值得注意的是,django形式也是Python类。该类可以继承并继承或动态修改。

  结论:以上是每个人都为Django使用MUI的相关内容来回答和总结的主要CTO注释。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?