欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python-Djangon

程序员文章站 2022-07-12 10:23:20
...

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() ...

推荐阅读