使用django开发遇到问题

1、创建项目
    1.1 安装Django    :pip install Django
    1.2 新建目录learning_log
    1.2 进入目录learning_log, django-admin.py startproject learning_log .   【注】:后面那个“.”不能落下 

2、python3无法安装MysqlDB,使用pymysql代替
    2.1 pip install pymysql  【注】:不要使用pymysql3,版本太低,运行migrate时候会报错“ImportError: cannot import name 'Thing2Literal'2.2 在项目根下的__init__文件中配置如下:
        import pymysql
        pymysql.install_as_MySQLdb()
    2.3 运行 python manage.py makemigrations
            python manage.py migrate

3、model中,在页面输出对象时候,想输出某个值显示,比如:页面显示obj时候显示obj.name,在model中的某个表对应的类中写入代码如下:
    2.x : def __unicode__(self):
            return self.name
    3.x : def __str__(self):
            return self.name        

4、django的shell,输入命令、数据后就可以通过交互终端会话以编程方式查看这些数据,为了测试项目和排除故障
    4.1 python manage.py shell
        from learning_logs.models import Topic
        Topic.objects.all()

5、解决pycharm中Django内部方法找不到、html无法识别django语法:
    打开pycharm的File->Settings,搜索Django,然后将项目根目录加入就好了
    在setting-language&frameworks-python template language中选择django

6、修改templates文件夹位置:
    6.1 在settings.py中,设置TEMPLATES下的DIRS:
         'DIRS': [os.path.join(BASE_DIR,'templates')],  //设置在根目录

7、登陆遇到错误:'WSGIRequest' object has no attribute 'session'
    我的MIDDLEWARE的配置是:
        MIDDLEWARE = [
            'django.middleware.security.SecurityMiddleware',
            'django.middleware.common.CommonMiddleware',
            'django.contrib.sessions.middleware.SessionMiddleware',
            'django.middleware.csrf.CsrfViewMiddleware',
            'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
            'django.contrib.auth.middleware.AuthenticationMiddleware',
            'django.contrib.messages.middleware.MessageMiddleware',
            'django.middleware.clickjacking.XFrameOptionsMiddleware',
        ]

        实际上,这是Django版本的问题,1.10之前,中间件的key为MIDDLEWARE_CLASSES, 1.10之后,为MIDDLEWARE。所以在开发环境和其他环境的版本不一致时,要特别小心,会有坑。 
        改配置为:

        MIDDLEWARE_CLASSES = [
            'django.middleware.security.SecurityMiddleware',
            'django.middleware.common.CommonMiddleware',
            'django.contrib.sessions.middleware.SessionMiddleware',
            'django.middleware.csrf.CsrfViewMiddleware',
            'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
            'django.contrib.auth.middleware.AuthenticationMiddleware',
            'django.contrib.messages.middleware.MessageMiddleware',
            'django.middleware.clickjacking.XFrameOptionsMiddleware',
        ]
        就可以解决了。

8、关于STATIC_URL、STATICFILES_DIRS 
    STATIC_URL = '/static/' 
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR,'static'),
    )
    STATIC_URL :#用来在页面显示静态资源用的 src={{ STATIC_URL }}{{ course.image }}
    STATICFILES_DIRS :资源在服务器上的绝对路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值