Python-Djangon

作者: 酸菜xwdz | 来源:发表于2018-07-18 18:25 被阅读2次

    Django官方文档

    版本信息
    • python : 3.6
    • 操作环境 : mac
    • django : 2.0
    需要安装
    • pip
    • django
    • mysql

    安装Django

    pip install Django==2.0

    可使用django-admi是否验证安装成功

    [django]
        check
        compilemessages
        createcachetable
        dbshell
        diffsettings
        dumpdata
        flush
        ...
    

    输出如上说明成功

    创建一个项目

    djando-admin startproject site(项目名称) 目录结构如下

    +-- project
        -- __init__.py  
        -- settings.py 配置各种组件
        -- urls.py 配置每个页面url地址
        -- wsgi.py python应用与web服务器交互
    +-- manage.py 管理器 启动server等
    

    运行server

    进入manage.py同级目录执行命令

    python manage.py runserver 8989(端口,可选,默认8080)

    打开浏览器输出http://127.0.0.1:端口/ 回车没报错则说明运行成功

    创建一个应用

    进入manage.py同级目录执行命令

    python manage.py startapp blog(应用名称) 自动生成目录结构如下

    blog/
        __init__.py
        admin.py
        apps.py
        migrations/
        __init__.py
        models.py
        tests.py
        views.py 接受请求以及返回代码编写
    

    配置site/INSTALLED_APPS

        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog' # 应用名称
    

    接收一个request请求

    打开 blog/views.py

    from django.shortcuts import render
    from django.http import HttpResponse
    
    
    def login(request):
        return HttpResponse('hello Django!')
    

    注意: 函数参数带了request的说明会有请求过来

    配置urls.py

    blog文件夹下创建urls.py文件

    from django.urls import path
    
    from . import views as blog
    
    urlpatterns = [
        path('login/', blog.login),
    ]
    
    
    # site/urls.py文件
        
    from django.contrib import admin
    from django.urls import path
    from django.urls import include
        
    urlpatterns = [
         # 默认存在
        path('admin/', admin.site.urls),
        # 自己配置
        path('auth/', include('blog.urls')),
    ]
        
    执行 python manage.py runserver 3232 在浏览器打开即可看见hello Django!
    
    

    eg:一个urls.py配置列子

    
    path
        site(项目)/urls.py配置如下
        path('auth',include('blog.urls')))
            -- login http://127.0.0.1:9999/auth/login/
            blog/urls.py 配置如下
                path('login/', blog.login)
            -- getUserName http://127.0.0.1:9999/auth/getUserName/
            path('getUserName/', blog.getUserName)
    list
        site(项目)/urls.py配置如下
        path('list',include('blog.urls')))
            -- getOrderlist   http://127.0.0.1:9999/list/getOrderlist/
                blog/urls.py 配置如下
                path('getOrderlist/', blog.getOrderlist)
                
    

    API抛出json数据结构

    blog/views.py 编写接口

    def getJsonTest:
        resultJson = {}
        result = {'name': 'huang', 'age': '11'}
        result2 = {'name': 'huang', 'age': '11'}
        result3 = {'name': 'huang', 'age': '11'}
    
        testJson = {
            'datetime': '昨天',
            'starttime': "今天"
        }
        result4 = {'name': testJson, 'age': '11'}
    
        listdata = [result, result2, result3, result4]
        resultJson['list'] = listdata
        resultJson['msg'] = 'this is message'
        print('request count ' + str(REQUESTCOUNT))
        return HttpResponse(json.dumps(resultJson), content_type="application/json")
    

    在Rresponse添加如下content_type="application/json"返回即是json数据

    配置数据库

    配置Site/settings.py下DATABASES模块

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',   # 数据库引擎
            'NAME': 'douban_info',       # 你要存储数据的库名,事先要创建
            'USER': 'root',         # 数据库用户名
            'PASSWORD': '123123',     # 密码
            'HOST': 'localhost',    # 主机
            'PORT': '3306',         # 数据库使用的端口
        }
    #   默认使用sqlite3
        #'default': {
        #    'ENGINE': 'django.db.backends.sqlite3',
        #    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        #}
    }
    

    Django中的ORM

    新建class继承models.Model表明新建表

    class user(models.Model):
        name = models.TextField(max_length=332)
        desc = models.TextField(max_length=223)
        db = models.Manager()
    
        def __str__(self):
            return self.name
    

    注意

    安装mysql如果报错do you install mysqlclient ?

    在site/init.py 添加如下代码

    import pymysql
    pymysql.install_as_MySQLdb()
    

    执行命令

    python manage.py makemigrations(可选)

    python manage.py migrate

    数据库查询

    先导入model模块

    from blog import models as model
    model.Test0.db.all().values().first() ...
    

    相关文章

      网友评论

        本文标题:Python-Djangon

        本文链接:https://www.haomeiwen.com/subject/sldapftx.html