• 使用pycharm开发web——django2.1.5(二)创建一个app并做一些配置


    这里我学习的呢是刘江老师的站,主要原因在于他这个版本新,还比较细节

    网址先留一手,约等于在引用http://www.liujiangblog.com/

    开始正题:

    1.在pycharm界面终端命令行里面

    (点这个)

    2.输入命令

    python manage.py startapp polls

    这里的polls是刘江老师教程中创建的投票系统的名字,你可以起任何名字

    3.观察你左边的目录你会发现多了一个新的文件夹,里面还有好多py文件

    4.编写视图

      这里的视图对应文件views.py,编辑,代码如下:

    polls/views.py

    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Hello, world. You're at the polls index.")

    这里你懂的引号里面那些话随便说

    配置该app的url

    polls/urls.py

    from django.urls import path
    
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),
    ]

    这里请记住,urlpatterns 是固定的名字,别写错了否则又是一阵找

    然后配置项目url

    pysite/urls.py

    这里的pysite是我的项目所在处,请根据自己的情况修改

    from django.contrib import admin
    from django.urls import include, path
    
    urlpatterns = [
        path('polls/', include('polls.urls')),
        path('admin/', admin.site.urls),
    ]

    5.启动查看127.0.0.1:8000/polls

    这时候就可以看见了。

    django可以连接各种数据库,默认的好像是叫作sqllite,神奇的在于,我先学了点python后学了点java,直到大概了解了一些java全栈知识的时候,回过头才把这个地方看懂,这里将数据库连接配置写入setting.py之中,与maven的jar包干的事情差不多那么,最后预计做的深一点就是增删改查了,只是在配置mysql和django相连的时候有个坑,(刚爬出来)

    首先你要在setting中修改这些

    # DATABASES = {
    #     'default': {
    #         'ENGINE': 'django.db.backends.sqlite3',
    #         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    #     }
    # }
    
    
    #pysite/setting.py
    
    #Database
    #https://doc.djangoproject.com/en/1.11/ref/settings/#database
    
    import pymysql #这里的两行很重要
    pymysql.install_as_MySQLdb()
    
    DATABASES = {
        'default':{
            'ENGINE':'django.db.backends.mysql',
            'NAME':'myexp',
            'HOST':'localhost',
            'USER':'root',
            'PASSWORD':'*******',
            'PORT':'3306',
            'OPTIONS': {
                'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",}
        }
    
    }

    注释的部分是默认的,因为我这里要连接本地的mysql

    这里几个属性,驱动,数据库名,数据库主机地址,数据库用户名,密码,端口(mysql默认3306),最后那个过几天研究研究->->

    密码我藏了一下下,仔细想想就是个人隐私。我那个数据库叫myexp。

    正常连接完之后,可以试着启动django,本来是直接迁移,我阴差阳错的发现两个会报同样的错,感觉这样会安全一点

    第一个大坑:由于django对于5.0还是3.0以上版本好像有个什么支持的问题,点完之后疯狂提示

    这个:

    django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11

    这就很蛇皮,结果问题是因为在base.py

    这个文件中有一句: (我注释的那个)

    把这个注释了就行了,,然后进入坑道第二层

    这时候你运行的话会出现:

     'str' object has no attribute 'decode'

    这个错误。

    根据报错找到相应文件D:pysitemysitevenvLibsite-packagesdjangodbackendsmysqloperations.py

    (上面是我的项目中的)

    146行有句话,看完之后感觉很气,一直说字符串没有decode方法,问题则出在。。。应该用encode而不是decode,解决方法也是将它直接改了

        def last_executed_query(self, cursor, sql, params):
            # With MySQLdb, cursor objects have an (undocumented) "_executed"
            # attribute where the exact query sent to the database is saved.
            # See MySQLdb/cursors.py in the source distribution.
            query = getattr(cursor, '_executed', None)
            if query is not None:
                query = query.encode(errors='replace')
            return query

    嗯,这样之后就ok的

    然后就是回到终端进行你的数据库迁移!!!

    python manage.py migrate

    好的,进入你的mysql

    发现多了好几个新的表,那么,你的任务基本完成,数据库算是连上了嘿。

  • 相关阅读:
    python判断字典中key是否存在
    获取redis中所有的key,清空整个 Redis 服务器的数据
    python redis模块详解
    Windows中redis的下载及安装、设置
    .htaccess
    python介绍
    vi和vim
    其他
    Linux系统相关命令
    Linux用户权限常见命令
  • 原文地址:https://www.cnblogs.com/lovely-lisk/p/11031862.html
Copyright © 2020-2023  润新知