requires相关知识
-
requires SQLDMO and SQLSERVER今天尝试把Infor SyteLine 8.02安装单独电脑上(OS:windows 7 Ultimate),在配置创建数据库时,有下面三个必选项无法选择,Create SyteLine Database,Link Database for Multi-Site Use和Infor Task Manager Service。如下截图:仔细想想,原来是Infor ERP SyteLine Version 8.01.10 and above only版本使用MS SQL Server 2008时,需要安装SQL-DMO和SQLSERVER。这个组件是在MS SQL Server安装时,没有自动安装的,需要手动安装。只要找到SQL Server 2005 Backward Compatibility文件来运行即可,(Folder:\1033_ENU_LP\[ia64,x64和x86]\Setup\[ia64,x64和x86])。这个文件是分几个版本ia64,x64和x86,根据您的操作系统作相对应的选择。&nbs
-
搭建LAMP中安装PHP遇到的故障apache结合php遇到的故障启动apache时出现错误:123/usr/local/apache2/bin/apachectl -tAH00526: Syntax error on line 367 of /usr/local/apache2/conf/httpd.conf:AddType requires at least two arguments, a mime type followed by one or more file extensionsAddType application/x-httpd-php.php ,启动apache出现 AddType requires at least two arguments, a mime type
-
nginx:编译、安装、启动一、下载从官网http://nginx.org/en/download.html 下载稳定版二、解压tar zxf nginx-1.6.2.tar.gzcd nginx-1.6.2三、配置./configure --prefix=/opt/app/nginx/1.6.2 --user=cargo注:prefix指定安装目录,user指定运行nginx的用户身份通常第一次并不会顺利成功,如果出现:./configure: error: the HTTP rewrite module requires the PCRE library.表示当前机器上没有PCRE包,可以手动安装:sudo yum -y install pcre-devel再次运行./configure --prefix=/opt/app/nginx/1.6.2 --user=cargo,又有新的错误:./configure: error: the HTTP gzip module requires the zlib library.类似的,手动
-
CUDA-cuDNN配置ubuntu18.04 Install development and runtime libraries (~4GB) sudo apt-get install --no-install-recommends \ cuda-10-1 \ libcudnn7=7.6.4.38-1+cuda10.1 \ libcudnn7-dev=7.6.4.38-1+cuda10.1 # Install TensorRT. Requires that libcudnn7 is installed above. sudo apt-get install -y --no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \ libnvinfer-dev=6.0.1-1+cuda10.1 \ libnvinfer-plugin6=6.0.1-1+cuda10.1 ubuntu16.04 Install dev
requires相关课程
requires相关教程
- 3. 修改描述文件 让我们编辑 my_gem_duxiao.gemspec 这个文件,修改一些描述文件。spec.summary = %q{TODO: Write a short summary, because RubyGems requires one.}spec.description = %q{TODO: Write a longer description or delete this line.}需要把 TODO 文字都去掉,要不然没法进行下一步操作。按照你自己想的修改一下 summary 和description。代码尽量都放到 lib/目录下。
- 3.6 pip3 show package-name 命令 pip3 show package-name 显示名称为 package-name 的第三方模块的信息,示例如下:C:\> pip3 show requestsName: requestsVersion: 2.23.0Summary: Python HTTP for Humans.Home-page: https://requests.readthedocs.ioAuthor: Kenneth ReitzAuthor-email: me@kennethreitz.orgLicense: Apache 2.0Location: c:\python3\lib\site-packagesRequires: chardet, idna, certifi, urllib3在以上信息中,requires 列出 requests 模块的依赖的模块:chardet、idna、certifi、urllib3,当安装 requests 模块时,会自动安装这 4 个模块。
- 9. 超媒体链接 RESTful API 最好做到 Hypermedia(即返回结果中提供链接,连向其他 API 方法),使得用户不查文档,也知道下一步应该做什么。比如,Github 的 API 就是这种设计,访问api.github.com会得到一个所有可用API的网址列表。{"current_user_url": "https://api.github.com/user","authorizations_url": "https://api.github.com/authorizations",// ...}从上面可以看到,如果想获取当前用户的信息,应该去访问 api.github.com/user,然后就得到了下面结果。{ "message": "Requires authentication", "documentation_url": "https://developer.github.com/v3"}上面代码表示,服务器给出了提示信息,以及文档的网址。
- 2. 安装 ADB 由于 Android Studio 是通过 ADB 来连接真机进行调试和测试的,所以我们必须安装 ADB 程序。前面章节我们已经学习过安装 Android SDK,Android SDK Tools 中已经包含 ADB,我们只需要完成环境变量的配置即可。macOS:无需其他配置。Ubuntu Linux在 ~/.bashrc 文件中添加如下内容:export SDK_HOME=/work/androidenv/android-sdk-linuxexport SDK_PLATFORM_TOOLS=$SDK_HOME/platform-toolsexport SDK_TOOLS=$SDK_HOME/toolsexport PATH=$SDK_PLATFORM_TOOLS:$SDK_TOOLS:$PATHTips:SDK_HOME 是指 Android SDK 安装目录如果 ADB 在使用中提示如下错误:error: insufficient permissions for device: udev requires plugdev group membership原因是当前 Linux 用户未在 plugdev 用户组中,解决方法是把当前用户添加到 plugdev 组中。sudo usermod -aG plugdev $LOGNAMEWindows按如下步骤添加环境变量:首先右击计算机 > 属性 > 高级系统设置 > 环境变量,然后点击环境变量 > 系统变量 > Path > 编辑,添加 ADB 程序所在目录。Tips:上图中 ADB 所在目录为 C:\Android。
- 2.1 MultipleObjectTemplateResponseMixin 首先来看 MultipleObjectTemplateResponseMixin 这个对象,它是一个 Mixin。前面我们提到,一个 Mixin 就是一个包含一个或多个功能片段的对象。这里的 Mixin 是用于响应模板文件和展示列表数据的,它继承至前面介绍到的 TemplateResponseMixin,在 TemplateResponseMixin 上做的扩展就是重写了 get_template_names() 方法,其源码如下:class MultipleObjectTemplateResponseMixin(TemplateResponseMixin): """Mixin for responding with a template and list of objects.""" template_name_suffix = '_list' def get_template_names(self): """ Return a list of template names to be used for the request. Must return a list. May not be called if render_to_response is overridden. """ try: names = super().get_template_names() except ImproperlyConfigured: # If template_name isn't specified, it's not a problem -- # we just start with an empty list. names = [] # If the list is a queryset, we'll invent a template name based on the # app and model name. This name gets put at the end of the template # name list so that user-supplied names override the automatically- # generated ones. if hasattr(self.object_list, 'model'): opts = self.object_list.model._meta names.append("%s/%s%s.html" % (opts.app_label, opts.model_name, self.template_name_suffix)) elif not names: raise ImproperlyConfigured( "%(cls)s requires either a 'template_name' attribute " "or a get_queryset() method that returns a QuerySet." % { 'cls': self.__class__.__name__, } ) return names从这里的代码,我们可以解释第一个实验中,第二次添加 get() 方法后报错的原因,就在这个代码段里。首先看这个 get() 函数: def get(self, request, *args, **kwargs): return self.render_to_response(context={'content': '正文1', 'spyinx': {'age': 29}})这个 get() 函数调用 self.render_to_response() 方法时会调用这个 get_template_names() 方法。如果是在 TemplateView 中,直接这样写是毫无问题的,但是在 ListView 中,ListView 继承了这个 Mixin,然后调用的get_template_names() 方法正是这里的代码。这个 get_template_names() 方法相比原来的就是多了下半部分代码,在程序执行到下面的语句时,由于没有 object_list 属性值就会触发异常:if hasattr(self.object_list, 'model'):修正的方法很简单,只要一开始加上这个 object_list 属性值即可。对于这个object_list 属性,它其实从名字也能看出来,表示一个对象的列表值,其实是一个 QuerySet 结果集。大概知道这些之后,我们就能理解后面的代码了: if hasattr(self.object_list, 'model'): opts = self.object_list.model._meta names.append("%s/%s%s.html" % (opts.app_label, opts.model_name, self.template_name_suffix)) elif not names: raise ImproperlyConfigured( "%(cls)s requires either a 'template_name' attribute " "or a get_queryset() method that returns a QuerySet." % { 'cls': self.__class__.__name__, } )对于这段代码指的是,如果self.object_list 对应着一个模型时,代码会在 names 中添加一个默认的模板文件名,我们可以在 shell 模式下理解下这些代码:(django-manual) [root@server first_django_app]# python manage.py shellPython 3.8.1 (default, Dec 24 2019, 17:04:00) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.(InteractiveConsole)>>> from hello_app.models import Member>>> object_list = Member.objects.all()>>> object_list.model<class 'hello_app.models.Member'>>>> object_list.model._meta<Options for Member>>>> opts = object_list.model._meta>>> opts.app_label'hello_app'>>> opts.model_name'member'这就很明显了,最后 names 中会加上一个额外的元素:hello_app/member_list.html。现在我们可以立马做一个实验,将实验1中的 template_name 属性值去掉,然后将原来的 test1.html 拷贝一份放到 template/hello_app 目录下,操作如下:(django-manual) [root@server first_django_app]# mkdir templates/hello_app(django-manual) [root@server first_django_app]# cp templates/test1.html templates/hello_app/member_list.htmlclass TestListView1(ListView): # template_name = 'test1.html' model = Member启动服务,然后运行发现也能成功。这就算对这个 Mixin 掌握了,我们也理解了它的代码内容并独立根据这个代码内容完成了一个实验。(django-manual) [root@server first_django_app]# curl http://127.0.0.1:8888/hello/test_list_view1/<p>正文1</p><div>29</div>
- 2.2 ContextMixin 和 TemplateResponseMixin 接下来,我们查看下 Django 提供的两个 mixin:ContextMixin 和 TemplateResponseMixin。其内容比较简单,源码如下:# 源码位置:django/views/generic/base.pyclass ContextMixin: """ A default context mixin that passes the keyword arguments received by get_context_data() as the template context. """ extra_context = None def get_context_data(self, **kwargs): kwargs.setdefault('view', self) if self.extra_context is not None: kwargs.update(self.extra_context) return kwargs class TemplateResponseMixin: """A mixin that can be used to render a template.""" template_name = None template_engine = None response_class = TemplateResponse content_type = None def render_to_response(self, context, **response_kwargs): """ Return a response, using the `response_class` for this view, with a template rendered with the given context. Pass response_kwargs to the constructor of the response class. """ response_kwargs.setdefault('content_type', self.content_type) return self.response_class( request=self.request, template=self.get_template_names(), context=context, using=self.template_engine, **response_kwargs ) def get_template_names(self): """ Return a list of template names to be used for the request. Must return a list. May not be called if render_to_response() is overridden. """ if self.template_name is None: raise ImproperlyConfigured( "TemplateResponseMixin requires either a definition of " "'template_name' or an implementation of 'get_template_names()'") else: return [self.template_name]ContextMixin 比较简单,只提供了一个属性 extra_context 和一个方法 get_context_data(),它主要的功能是根据额外提供的参数,组成新的上下文字典,调用 get_context_data() 方法即可实现。TemplateResponseMixin 是用来渲染模板的,它的属性与方法如下:属性:template_name:模板文件名;template_engine: 模板引擎;response_class: 返回的 Response,默认是 TemplateResponse;content_type:返回客户端的数据类型。方法:render_to_response():默认直接调用 TemplateResponse(),完成模板渲染后返回响应给客户端;get_template_names():获取模板名称,返回列表的形式;如果没有设置 template_name 属性值,则会报错。因此对于继承该 mixin 对象的子类,必须要设置 template_name 属性值。Mixin 的特点就是功能简单,它们可以混合加到其他类中,那么其他类就具备这些 Mixin 的功能,组合得到一个更高级的类。同样我们在前一小节实验的基础上改造下 views.py 中的内容,如下:class TestView(TemplateResponseMixin, View): template_name = 'test.html' def get(self, request, *args, **kwargs): return self.render_to_response(context={'content': '正文1', 'spyinx': {'age': 29}})这里我们额外继承 TemplateResponseMixin 类。首先需要添加 template_name 属性,指定要渲染的模板文件,然后调用从 TemplateResponseMixin 中继承过来的 render_to_response() 方法并返回。从源码角度来看,这个视图实现的功能和上一个小节中直接返回 TemplateResponse 实例是一样的。# 启动 first_django_app 工程...# 打开xshell另一个窗口,发送http请求[root@server first_django_app]# curl http://127.0.0.1:8888/hello/test-cbv/<p>正文1</p><div>29</div>
requires相关搜索
-
radio
radiobutton
radiobuttonlist
radiogroup
radio选中
radius
rails
raise
rand
random_shuffle
randomflip
random函数
rangevalidator
rarlinux
ratio
razor
react
react native
react native android
react native 中文