• Django-自己写的py文件调用models&Non-ASCII character报错&url接收参数


    1.这个设置是网上能查到的最多的,但是没解决我的问题:

    Django的models.py在外部独立使用,新建一个文件夹,和monitor1目录平级
    import sys,os
    sys.path.append('../monitor1/')
    os.environ['DJANGO_SETTINGS_MODULE'] ='monitor1.settings'
    

    2.在项目目录中有一个和app平级的目录,但这个目录并不是app,

    想要在这个目录中调用app中的models,需要这么设置:

    import os, django
    os.environ['DJANGO_SETTINGS_MODULE'] = '项目名.settings'
    django.setup()
    from show.models import company
    
    c= company.objects.filter(id=2)[0]
    

    这是windows上的设置,换成linux时得这么设置:

    import os
    import django
    import sys
    sys.path.append(r'/data/my_env1/monitor1/')
    sys.path.append(r'/data/my_env1/monitor1/monitor1')
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "monitor1.settings")
    django.setup()
    from show.models import server_resource, program
    注:/data/my_env1/monitor1/是项目路径
    

    3.编码报错:

    SyntaxError: Non-ASCII character 'xe5' in file **
    Python默认是以ASCII作为编码方式的,如果在自己的Python源码中包含了中文,
    或者其他非英语系的语言,此时即使你把自己编写的Python源文件以UTF-8格式保存了,
    但实际上这依然是不行的,解决办法很简单,只要在文件开头加入下面代码:
    

    # -*- coding: UTF-8 -*-

    附:json文件中的键不能重复,是唯一的.

    4.django-url接收参数

    一、页面的跳转

    在urls.py中定义name:
    url(r'server_list', views.server_list, name="server_list"),
    在一个页面中使用url进行跳转:
    <a href="{% url 'show:server_list' %}">服务器资源信息</a>
    

    二、页面跳转传递参数

    url(r'^detail/(?P<pid>d+)', views.program_detail, name="program_detail"),
    在前端页面中定义跳转,并传递参数:
    <a href="{% url 'show:program_detail' company.user_id %}">
    {{ company.user.domaim_name }}</a>
    视图函数中就得这么写:program_detail(request, pid)
    传递多个参数的话--url(r'^detail/(?P<year>d+)/(?P<month>d+)/(?P<day>d+)'
    视图中也得有相应的参数来接收
    
  • 相关阅读:
    AsyncTask类
    linux下带有空格的文件怎么删除
    python 获取指定文件夹的大小
    python 无法获取隐藏文件夹中的文件列表
    LINK : fatal error LNK1104: 无法打开文件“libboost_serialization-vc90-mt-gd-1_62.lib”
    解决错误 fatal error C1010: unexpected end of file while looking for precompiled head
    PCH Warning: header stop cannot be in a macro or #if block.
    C++ Boost在VS2015中的使用
    dev-c++ boost库的安装
    python 获取命令行输出结果
  • 原文地址:https://www.cnblogs.com/fawaikuangtu123/p/9868715.html
Copyright © 2020-2023  润新知