Python-Djangon
程序员文章站
2022-07-12 10:23:20
...
版本信息
-
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() ...
推荐阅读