标签: Django

  • Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header

    Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header

    问题描述

    Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header:

    DisallowedHost at /
    Invalid HTTP_HOST header: ‘10.211.55.6:8000’. You may need to add u’10.211.55.6′ to ALLOWED_HOSTS.

    Request Method: GET
    Request URL: http://10.211.55.6:8000/
    Django Version: 1.10.4
    Exception Type: DisallowedHost
    Exception Value:
    Invalid HTTP_HOST header: ‘10.211.55.6:8000’. You may need to add u’10.211.55.6′ to ALLOWED_HOSTS.
    Exception Location: /usr/lib/python2.7/site-packages/django/http/request.py in get_host, line 113
    Python Executable: /usr/bin/python
    Python Version:

    1,以上时我访问请求的时候出现的,原因在于Django框架中的创建的一个项目的时候,

    2,跑下这个命令:python manage.py runserver 10.211.55.5:8000

    3,然后在我本机的浏览器中写入上述IP和端口请求过去:http://10.211.55.6:8000

    4,于是就出现了最上面的那个问题;

    5,于是就去django-admin.py startproject project-name创建的项目中去修改 setting.py 文件:

    ALLOWED_HOSTS = ['*']  #在这里请求的host添加了*

    6,于是就成功的访问到了Django的项目了;

  • Python Docker Centos  Django 出现 OSError: mysql_config not found 解决办法

    Python Docker Centos Django 出现 OSError: mysql_config not found 解决办法

    问题描述

    通过 pip install mysqlclient 时报出了

    OSError: mysql_config not found错误,如图:

    解决办法

    原因是linux需要mysql相关的一些依赖包

    yum install mysql-devel gcc gcc-devel python-devel -y

    安装完毕后就可以正常pip install mysqlclient了

  • django入门教程 创建项目(Project)和应用(App)

    django入门教程 创建项目(Project)和应用(App)

    创建项目

    打开Anaconda Prompt,cd 到一个你想放置你代码的目录,然后运行以下命令:

    django-admin startproject jsite

    让我们看看 startproject 创建了些什么:

    jsite/
        manage.py
        jsite/
            __init__.py
            settings.py
            urls.py
            wsgi.py

    创建数据库

    打开PyCharm,新建project,目录输入刚创建的jsite,忽略非空目录提示,直接点Yes。打开Terminal窗口,运行以下命令:

    python manage.py migrate

    会看到类似下面的显示:

    D:\jsite>python manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sessions
    Running migrations:
      Applying contenttypes.0001_initial... OK
      Applying auth.0001_initial... OK
      Applying admin.0001_initial... OK
      Applying admin.0002_logentry_remove_auto_add... OK
      Applying admin.0003_logentry_add_action_flag_choices... OK
      Applying contenttypes.0002_remove_content_type_name... OK
      Applying auth.0002_alter_permission_name_max_length... OK
      Applying auth.0003_alter_user_email_max_length... OK
      Applying auth.0004_alter_user_username_opts... OK
      Applying auth.0005_alter_user_last_login_null... OK
      Applying auth.0006_require_contenttypes_0002... OK
      Applying auth.0007_alter_validators_add_error_messages... OK
      Applying auth.0008_alter_user_username_max_length... OK
      Applying auth.0009_alter_user_last_name_max_length... OK
      Applying sessions.0001_initial... OK
    

    安装项目

    在 settings.py 的 INSTALLED_APPS 中添加项目名 jsite (需与 apps.py 中的名称一致)


    运行用于开发的简易服务器

    Terminal窗口中运行以下命令:

    python manage.py runserver

    会看到类似下面的显示:

    D:\jsite>python manage.py runserver
    Performing system checks...
    System check identified no issues (0 silenced).
    October 24, 2018 - 21:53:21
    Django version 2.1.2, using settings 'jsite.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    

    浏览器打开http://127.0.0.1:8000/,看到“The install worked successfully! Congratulations!”字样说明成功。千万不要 将这个服务器用于和生产环境相关的任何地方。这个服务器只是为了开发而设计的。

    会自动重新加载的服务器 runserver

    用于开发的服务器在需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。


    创建投票应用

    请确定你现在处于 manage.py 所在的目录下,然后运行这行命令来创建一个应用:

    python manage.py startapp polls

    这将会创建一个 polls 目录,它的目录结构大致如下:

    polls/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py
  • python django 中 如何修改admin首页和title

    python django 中 如何修改admin首页和title

    前言

    django的admin首页默认显示的”Django 管理”,title显示的是”Django 站点管理员”,这里的文案内容可以修改成自己项目的后台页面内容

    首页和title

    django后台首页点开,修改成项目对应的文案, 修改如下图2个地方

    admin.py修改

    在admin.py下重写admin.site里面的属性值

    • site_header 设置页面上的内容
    • site_title 页面左上角的title内容
    • index_title 后台管理
    # admin.py
    admin.site.site_header = 'xx 项目管理系统'
    admin.site.site_title = '登录系统后台'
    admin.site.index_title = '后台管理'
  • python  models.py 类里面的__str__ 和__unicode__作用

    python models.py 类里面的__str__ 和__unicode__作用

    前言

    最近学django,看到不少教程里面models.py里面建表,写一个类的时候,习惯上加个__str__ ,开始不太明白,简单的实践后才知道是为了美化类实例的打印内容。

    python3 里面用__str__ ,python2里面用__unicode__

    写个类在 models.py 中添加

    class ComputerRoom(models.Model):
        name = models.CharField(max_length=256,verbose_name = "名称")
        abbr = models.CharField(max_length=128, blank=True, null=True,verbose_name = "缩写")
        type = models.CharField(max_length=256)
        exist_buyout = models.IntegerField(blank=True, null=True)
        cmd_buyout = models.CharField(max_length=256, blank=True, null=True)
        exist_95 = models.IntegerField(blank=True, null=True)
        cmd_95 = models.CharField(max_length=256, blank=True, null=True)
        maximum = models.IntegerField(blank=True, null=True)
        lower_limit = models.IntegerField(blank=True, null=True)
        upper_limit = models.IntegerField(blank=True, null=True)
        weights = models.IntegerField(blank=True, null=True)
        host = models.CharField(max_length=256, blank=True, null=True)
        username = models.CharField(max_length=256, blank=True, null=True)
        password = models.CharField(max_length=256, blank=True, null=True)
        port = models.IntegerField(blank=True, null=True)
        maximum_95 = models.BigIntegerField(blank=True, null=True)
        lower_limit_95 = models.BigIntegerField(blank=True, null=True)
        upper_limit_95 = models.BigIntegerField(blank=True, null=True)
        update_time = models.DateTimeField(auto_now=True)
        
        # def __unicode__(self):
        #     return self.name
        def __str__(self):
            return self.name
        class Meta:
            managed = False
            db_table = 'computer_room'
            verbose_name_plural = "机房管理"

    这里如果我们使用 __unicode__ ,在列表中可以正常显示,但是在 添加/修改 页面显示 Object 对象了。

    如果使用 __str__ ,则显示正常了。

  • Python3 如何把Django后台设置成中文 图文教程

    Python3 如何把Django后台设置成中文 图文教程

    最近在用Python写一个项目,下面记录一下如何把Django的后台设置成中文。

    在项目的 settings.py 中配置:

    LANGUAGE_CODE = 'zh-hans'
    TIME_ZONE = 'Asia/Shanghai'

    后台即可显示为中文。

  • Django根据数据库反向生成models

    Django根据数据库反向生成models

    创建一个项目,修改settings.py文件,在settings里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致

    自动生成models模型文件

    python manage.py inspectdb

    把模型文件导入到app中

    创建app

    django-admin.py startapp app

    将模型导入创建的app中去

    python manage.py inspectdb > app/models.py
    #创建app
    django-admin.py startapp app
    #将模型导入创建的app中去
    python manage.py inspectdb > app/models.py

    至此大功告成

WeChat
↑