python django
install django
pip3 install django
link django
sudo ln -is /Library/Frameworks/Python.framework/Versions/3.10/bin/django-admin /usr/local/bin/django-admin
create django
django-admin startproject projectname
create app
python3 manage.py startapp app
-
修改app下面的文件
-
增加static 放置静态文件
-
增加templates放置模版
- 增加main.html
-
views.py增加请求地址
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app', # install app
]
def home(request):
return render(request,'main.html')
- 修改urls.py
"""demo URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/4.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from app.views import home
urlpatterns = [
path('admin/', admin.site.urls),
path('',home,name='home'),
]
python3 manage.py runserver 8081
安装数据库
sudo pip3 install pymysql
配置数据库
DATABASES = {
'default': {
#'ENGINE': 'django.db.backends.sqlite3',
#'NAME': BASE_DIR / 'db.sqlite3',
'ENGINE':'django.db.backends.mysql',
'NAME':'demodb',
'HOST':'127.0.0.1',
'PORT':'3306',
'USER':'root',
'PASSWORD':'123456',
}
}
创建数据表
数据迁移
python manage.py makemigrations
migrate
python manage.py migrate
from django.db import connection
from django.shortcuts import render
import json
# Create your views here.
from app.models import MyInfo
def home(request):
data_center = get_all() # getDataBySql_center() # getdata_center()
context = {
'data_center': data_center
}
return render(request, 'main.html', context)
def load_json(request):
with open(r'D:\practice\demo\app\static\data.json', encoding='utf-8') as f:
data = json.load(f)
info = data['RECORDS']
for re_data in info:
record = MyInfo(
confirmedCount=re_data['confirmedCount'],
confirmedIncr=re_data['confirmedIncr'],
curedCount=re_data['curedCount'],
curedIncr=re_data['curedIncr'],
currentConfirmedCount=re_data['currentConfirmedCount'],
currentConfirmedIncr=re_data['currentConfirmedIncr'],
dateId=re_data['dateId'][:4]+'-'+re_data['dateId'][4:6]+'-'+re_data['dateId'][6:8],
deadCount=re_data['deadCount'],
deadIncr=re_data['deadIncr'],
suspectedCount=re_data['suspectedCount'],
suspectedCountIncr=re_data['suspectedCountIncr'],
provinceName=re_data['provinceName'],
provinceShortName=re_data['provinceShortName']
)
record.save()
return render(request,'200.html')
# get province data
def getdata_center():
maxdate = MyInfo.objects.latest('dateId').dateId
result = MyInfo.objects.filter(dateId=maxdate)
list = [] # add current increase num and province data
for info in result:
pInfo = {
}
pInfo['name'] = info.provinceShortName
pInfo['value'] = info.confirmedIncr
list.append(pInfo)
return list
def getDataBySql_center():
cursor = connection.cursor()
sql = 'select provinceShortName,confirmedCount,dateId from app_myinfo where ' \
'dateId in (select max(dateId) as datetidnew from app_myinfo)'
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
connection.close()
list = [] # add current increase num and province data
for info in result:
pInfo = {
}
pInfo['name'] = info[0]
pInfo['value'] = info[1]
list.append(pInfo)
return list
def get_all():
result = MyInfo.objects.all()
list = []
for info in result:
pInfo = {
}
pInfo['name'] = info.provinceShortName
pInfo['value'] = info.confirmedIncr
list.append(pInfo)
return result
参考链接
https://www.runoob.com/django/django-install.html