• 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框架原理比较直观,简单的记录,还未涉及到对数据库进行增,删,改,查的操作

    ~越努力越幸运~
  • 相关阅读:
    【转】Android开发——MediaProvider源码分析(2)
    关于ActivityGroup使用过程中遇到的一点问题
    HttpWebRequest详解
    关于Assembly.CreateInstance()与Activator.CreateInstance()方法的区别
    你会在C#的类库中添加web service引用吗?
    ASP.NET跳转网页的三种方法的比较
    .net发送HTTP POST包
    依赖注入
    微软ASP.NET MVC Beta版本发布
    随笔~
  • 原文地址:https://www.cnblogs.com/xtlyf1314/p/4705203.html
Copyright © 2020-2023  润新知