zoukankan      html  css  js  c++  java
  • django连接mysql数据库,框架映射数据库模型,省掉sql语句哦

    新建一个django项目:

    如下图,

    添加项目目录文件:test_db,(如果文件不存在,会在该目录下新建一个文件夹)

    设置app名称:testdb,在新的窗口打开项目,如图所示

    其中,MVC模式中,models.py用于处理M,views.py用于处理V,urls.py用于映射视图。

    1.下载pymysql:pip install pymysql

    2.在项目__init__.py里添加(不是):

    import pymysql
    pymysql.install_as_MySQLdb()
    如图所示:

     models.py中定义数据库表的字段:

    from django.db import models
    class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()
    def __unicode__(self):
    return self.name
    在mysql中事先建立一个数据库,比如:book,然后修改setting.py中DATABASE如下:
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME':'book',
    'USER':'root',
    'PASSWORD':'lyf123',
    'HOST':'127.0.0.1',
    'POST':'3306',
    # 'ENGINE': 'django.db.backends.sqlite3',
    #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
    }
    经过以上两个步骤,然后通过命令查看models.py对应的sql语句,命令如下:python manage.py sqlall testdb(项目名)(如果出现:App 'testdb' has migrations的错误,只要将migrations文件删除即可),如下图所示:

    然后通过命令python manage.py syncdb同步数据库,创建表,结果如下图:

    启动mysql,输入对应的命令查看是否建立了该表和对应的字段。
    在views.py中添加视图处理:
    from .models import Publisher
    from django.shortcuts import render_to_response
    def book_list(request):
    names = Publisher.objects.all()
    return render_to_response('book_list.html', {'names': names})
    在urls.py中添加url映射:
    url(r'^book/',views.book_list),
    在templates中加入两个html文件:
    #base.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>
    {% block title %}{% endblock %}
    </title>
    </head>
    <body>
    <h1>My book Site</h1>
    <hr>
    {% block content %}{% endblock %}
    {% block footer %}
    <p>Thanks for visiting my site.</p>
    {% endblock %}
    </body>
    </html>

    #book_list.html
    {% extends 'base.html' %}
    {% block title %}title: book_lib{% endblock %}
    {% block content %}
    <table>
    <tr><th>name</th><th>address</th><th>city</th<th>country</th><th>website</th></tr>
    {% for m in names %}
    <tr>
    <td > {{ m.name }} </td>
    <td > {{ m.address }} </td>
    <td > {{ m.city }} </td>
    <td>{{m.country }}</td>
    <td>{{ m.website }}</td>
    </tr>
    {% endfor %}
    </table>
    {% endblock %}
    运行django server,结果如下:

    PS:表中的数据是通过mysql命令窗口自己胡乱写进去,用于测试的
    总结:这个例子是对django框架原理比较直观,简单的记录,还未涉及到对数据库进行增,删,改,查的操作

    ~越努力越幸运~
  • 相关阅读:
    模板-树链剖分
    bzoj2523 聪明的学生
    P1220 关路灯
    BZOJ3572 [Hnoi2014]世界树
    BZOJ4013 [HNOI2015]实验比较
    BZOJ4012 [HNOI2015]开店
    BZOJ4011 [HNOI2015]落忆枫音
    BZOJ4009 [HNOI2015]接水果
    BZOJ4010 [HNOI2015]菜肴制作
    BZOJ4008 [HNOI2015]亚瑟王
  • 原文地址:https://www.cnblogs.com/xtlyf1314/p/4705203.html
Copyright © 2011-2022 走看看