zoukankan      html  css  js  c++  java
  • Django与mysql数据库的连接

    环境:win7+py3.4+mysql+pymysql

    (以下默认工程和应用已经创建)

    1.-->工程/settings.py    (数据库配置)

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST':'127.0.0.1',
            'PORT':3306,
            'NAME': 'bole',
            'USER':'root',
            'PASSWORD':'root',
        }
    }

    2.-->应用/models.py  (数据库字段设置)

    from django.db import models
    
    class python(models.Model):
        title = models.CharField(max_length=20)
        intro = models.CharField(max_length=100)
        def __str__(self):
            return self.title

    3.-->迁移数据库python manage.py makemigrations   +  python manage.py migrate

    在Mysql数据库中显示

    插入测试数据  : python manage.py shell   ------->>>from 应用.models import python       >>>c = python(title='test',intro='这是个测试')   >>>c.save()  .......

    4.-->应用/views.py (编写视图函数显示数据)

    from django.shortcuts import render
    from .models import python
    def index(request):
        context = python.objects.all()
        return render(request,'index.html',context={'context':context})

    5.-->应用、工程/urls.py   (设置访问路径与视图函数的映射)

    应用/urls.py

    from django.conf.urls import url
    from . import views
    
    urlpatterns = [
        url(r'^index/$',views.index,name = 'index'),
    ]

    project/urls.py

    from django.conf.urls import url,include
    from django.contrib import admin
    
    urlpatterns = [
        url(r'',include('DB.urls')),
        url(r'^admin/', admin.site.urls),
    ]

    6.-->index.html    (编写前端显示模板)

    settings.py 中修改

    'DIRS': [os.path.join(BASE_DIR,'templates')],

    在根目录(manage.py所在目录)新建templates文件夹,在其中新建index.html

    <ul>
        {% for article in context %}
        <li>
            标题:{{article.title}}
            内容:{{article.intro}}
        </li>
        {% endfor %}
    </ul>

    至此涉及到的M(models)V(views)T(templates)都已完成,python manage.py runserver 在本机运行  http://127.0.0.1:8000/index/

    运行另外的py程序修改该数据库内容,刷新后可更新内容

    import pymysql
    try:
        con = pymysql.connect(host = '127.0.0.1',user = 'root',passwd='root',charset='utf8')
        con.query('create database bole')
        con = pymysql.connect(host = '127.0.0.1',user = 'root',passwd='root',db = 'bole',charset='utf8')
    except:
        con = pymysql.connect(host = '127.0.0.1',user = 'root',passwd='root',db = 'bole',charset='utf8')
    try:
        pass
    except:
        print('Table existed')
    print('Finished')
    sql = "insert INTO db_python(title,intro) VALUES ('test4','这还是一个实时测试')"
    con.query(sql)

    -------------------By:羽凡     At:2017-10-6-23:55------------------

    天下飞羽,花落凡尘
  • 相关阅读:
    PyMySQL TypeError: not enough arguments for format string
    使用python3抓取pinpoint应用信息入库
    JS 异步之 async await
    JS Null 空 判断
    Vue问题汇总
    pymysql DAO简单封装
    py可视化执行过程
    jenkins回滚之groovy动态获取版本号
    容器时间 容器乱码问题
    SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana]
  • 原文地址:https://www.cnblogs.com/AngelYuFan/p/7633334.html
Copyright © 2011-2022 走看看