• 安装Django


    Django安装步骤(pycharm)

    1.创建Django项目

    db没有显示红色x说明创建成功了

    2.安装插件

    界面左下角有一个Terminal,点开就是一个命令行控制台,可以输入命令

    查看Django版本信息,可以看出pycharm创建Django安装的是2.1.1的版本

    2.1.安装Django1.11.12版本

    目前支持比较好的为1.11.12,所以可以安装1.11.12(安装过程中会自动卸载掉2.1.1版本)

    2.2安装Pymysql插件

    接下来安装pymysql驱动包(用于连接数据库)

    (venv) D:Djangodb>pip install pymysql
    Collecting pymysql
      Using cached https://files.pythonhosted.org/packages/a7/7d/682c4a7da195a678047c8f1c51bb7682aaedee1d
    ca7547883c3993ca9282/PyMySQL-0.9.2-py2.py3-none-any.whl
    Collecting cryptography (from pymysql)
      Using cached https://files.pythonhosted.org/packages/f1/01/a144ec664d3f9ae5837bd72c4d11bdd2d8d40331
    8898e4092457e8af9272/cryptography-2.3.1-cp36-cp36m-win_amd64.whl
    Collecting cffi!=1.11.3,>=1.7 (from cryptography->pymysql)
      Using cached https://files.pythonhosted.org/packages/2f/85/a9184548ad4261916d08a50d9e272bf6f93c54f3
    735878fbfc9335efd94b/cffi-1.11.5-cp36-cp36m-win_amd64.whl
    Collecting idna>=2.1 (from cryptography->pymysql)
      Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab0
    5a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
    Collecting six>=1.4.1 (from cryptography->pymysql)
      Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43
    ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
    Collecting asn1crypto>=0.21.0 (from cryptography->pymysql)
      Using cached https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab
    5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl
    Collecting pycparser (from cffi!=1.11.3,>=1.7->cryptography->pymysql)
      Using cached https://files.pythonhosted.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073
    d36a17b1491fd09df6ed/pycparser-2.18.tar.gz
    Installing collected packages: pycparser, cffi, idna, six, asn1crypto, cryptography, pymysql
      Running setup.py install for pycparser ... done
    Successfully installed asn1crypto-0.24.0 cffi-1.11.5 cryptography-2.3.1 idna-2.7 pycparser-2.18 pymys
    ql-0.9.2 six-1.11.0
    
    

    查看版本信息

    3.配置Django基本流程

    3.1.导入pymysql包

    在Django的db项目名称下的__init__.py下添加

    import pymysql   #导入pymysql包,里面的所有功能便可以使用了,不需要单独一个个导入pymysql下的功能模块了
    pymysql.install_as_MySQLdb()   #当成mysqldb使用,没有这个就会使用pymysql的方式,这个主要是便于之前2.x版本用习惯了mysqldb的人使用(3.x版本后无法使用mysqldb)
    

    3.2创建app

    Terminal控制台敲命令

    python manage.py startapp db_operate
    

    创建完成后,会在左边多出一个目录db_operate(自己创建时的命名),里面就是用来做Django各种操作的

    3.3注册APP

    进入settings.py,找到一下配置,添加'db_opeate',用于注册创建的app

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'db_operate'
    ]
    

    4.修改urls.py文件

    from django.contrib import admin
    # from django.urls import path  Django2.1.1版本的导入方式
    from django.conf.urls import url
    
    urlpatterns = [
        # path('admin/', admin.site.urls), Django2.1.1版本的导入方式
        url('admin/', admin.site.urls),
    ]
    

    4.配置静态网页

    4.1创建目录static

    这个static目录里面用于存放子目录如css、js、img这些内容

    4.2.配置static添加信息

    在settings.py中配置static静态页面信息,作用是便于Django项目运行是调用该目录下的文件

    4.3.static下添加内容

    4.4.创建index.html网页文件

    这个文件需要在templates下创建,这个目录在创建项目的时候自动创建的,项目运行时,会找到这个目录下的网页文件进行识别

    5.配置数据库

    5.1连接数据库

    #settings.py文件
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'demo',
            'USER':'root',
            'PASSWORD':'root'
        }
    }
    

    5.2定义Movies类(也就是列名、字典键)

    from django.db import models
    
    class Movies(models.Model):
        name=models.CharField(max_length=64)
        category=models.CharField(max_length=64)
        date=models.CharField(max_length=64)
    
        class Meta:
            db_table="t_movies"
    

    5.3创建表

    makemigrations detail
    migrate detail
    

    5.4创建函数方法(也就是进行增删改查操作)

    from django.shortcuts import render
    from detail.models import Movies
    
    def add(request):
        if request.method=="GET":
            return render(request, 'addmovies.html')
        elif request.method=="POST":
            movies=Movies()
            movies.name=request.POST.get("name")
            movies.category=request.POST.get("category")
            movies.date=request.POST.get("date")
            movies.save()
            # return select(request)
            return redirect(to= reverse('movielist'))       #重定向方式
    
    def select(request):
        movies=Movies.objects.all()   #字典
        return render(request,'movielist.html',context={'movies':movies})
    

    5.5设置路由(调用函数至网页文件)

    from django.contrib import admin
    from django.conf.urls import url
    
    from detail import views
    urlpatterns = [
        url('admin/', admin.site.urls),
        url('addmovies/',views.add),
        url('movielist/',views.select,name='movielist')     #重定向方式
        #url('movielist/',views.select)
    ]
    

    5.6网页文件

    添加记录的页面

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/html">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <form action="http://127.0.0.1:8000/addmovies/" method="POST">
            请输入电影名称:<input type="text"  name="name"><br>
            请输入电影类型:<input type="text" name="category"><br>
            请输入时间:<input type="text"  name="date"><br>
            <input type="submit" value="提交">
        </form>
    </body>
    </html>
    

    查询记录的页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>movie list</title>
    </head>
    <body>
        <table border="1" cellspacing="0">
            <tr>
                <th>name</th>
                <th>category</th>
                <th>date</th>
            </tr>
            {% for movie in movies %}
                <tr>
                    <td>{{ movie.name }}</td>
                    <td>{{ movie.category }}</td>
                    <td>{{ movie.date }}</td>
                </tr>
            {% endfor %}
        </table>
    </body>
    </html>
    

    5.7查看效果

    添加页面

    提交后跳转到电影列表页面

    查看数据库

  • 相关阅读:
    网页图表Highcharts实践教程标之添加题副标题版权信息
    S3C6410 裸机硬件JPEG解码(转)
    FPGA UART简单的串口接收模块
    unicode转GBK,GNK转unicode,解决FATFS中文码表占用ROM问题(转)
    Java 基础类型转换byte数组, byte数组转换基础类型
    JNI错误总结(转)
    Java通过JNI调用dll详细过程(转)
    UDP传输包大小(转)
    SD卡兼容性问题(转)
    汉字与区位码互转(转)
  • 原文地址:https://www.cnblogs.com/endmoon/p/9621394.html
Copyright © 2020-2023  润新知