用pycharm创建一个django框架
注意解释器的选择和文件路径
创建完django项目
1.自动创建了一个templates目录(先删除)
2.把settings里的
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates']
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
改成
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': []
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
即取消默认的templates文件夹
默认项目文件夹
settings.py【项目配置】
urls.py【url和函数的对应关系】
asgi.py【接收网络请求(不要动的)】
wsgi.py【接收网络请求(不要动的)】
创建app
找到manage.py文件目录
调用python startapp+app名称
python manage.py startapp cnnDjango
完成!
C:\Users\HP\.conda\envs\pytorch-gpu\python.exe "D:\pycharm\PyCharm 2022.1.3\plugins\python\helpers\pycharm\django_manage.py" startapp cnnDjango E:/pyzixue/cnn_django
Tracking file by folder pattern: migrations
Following files were affected
E:\pyzixue\cnn_django\cnnDjango\migrations\__init__.py
进程已结束,退出代码0
现在总体文件是这样
卷 game 的文件夹 PATH 列表
卷序列号为 B0AB-9373
E:.
├─.idea
│ └─inspectionProfiles
├─cnnDjango
│ └─migrations
└─cnn_django
models.py【对数据库操作】
views.py【函数】
快速上手
确保app已经注册【settings.py]
1、找到apps.py 找到
class CnndjangoConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'cnnDjango'
2、返回settings.py找到已经安装的app加进去
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
加入进去后
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cnnDjango.apps.CnndjangoConfig',
]
编写url和视图函数对应关系【urls.py】
先将views导入完成
不用默认的admin
修改成
from cnnDjango import views
urlpatterns = [
#path('admin/', admin.site.urls),
#www.xxx.com/index/ -> 函数
path('index/', views.index),
]
编写视图函数【views.py】
在views.py中定义index函数
from django.shortcuts import render,HttpResponse
def index(request):
return HttpResponse('欢迎使用!')
启动django项目
命令行启动
python manage.py runserver
pycharm启动
右上角启动运行
成功之后可以访问
http://127.0.0.1:8000/index/
设置模板文件夹
在app文件夹下面创建templates文件夹
在templates创建html文件夹即可在【views.py】中使用函数跳转
# 会去app目录下的templates目录寻找xxx.html文件
# 根据app注册的顺序,逐一查找
return render(request,"XXX.html")
创建静态文件夹
在app目录下创建一个static文件夹
在html中可以这样读取static文件内容
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<img src="{% static 'img/1.png' %}" alt="">
</body>
</html>
这么写的优势是如果想改变整个static文件目录
可以去【settings.py】中改变一下代码文件
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATIC_URL = '/static/'
改变static即可改变所有静态文件目录
django的模板语法
在【views.py】中
return render(request,'xxx,html',dict)
意为往xxx.html传入一个字典
在html生成中可以调用dict的内容
{% for item in dict%}
<li>{{ item.xxx }}</li>
{% endfor %}
连接mysql模块
不需要Mysql数据库 + pymysql
使用django内置的orm框架
先安装模块
pip install mysqlclient
但是注意它无法创建数据库,所以数据库得我们自己创建
1.先进入msql
show databases
2.创建数据库
create database 数据库名字 DEFAULT CHARSET utf8 COLLATE uft8_general_ci;
3.django连接数据库
在【settings.py】找到
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
修改成
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'dbname',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': 3306,
}
}
django创建表
在【models.py】文件中操作表
定义类
from django.db import models
# Create your models here.
class UserInfo(models.Model):
name = models.CharField(max_length=32)
pwd = models.CharField(max_length=64)
age = models.IntegerField()
写好之后在【manage.py】目录文件
python manage.py makemigrations
python manage.py migrate
执行这两个命令即可更新mysql
前提:你的app已经注册!
表的增删改查
在【views.py】文件中
from app01.models import UserInfo
def orm(request):
#测试ORM操作表中的数据
UserInfo.objects.create(name = 'xxxx')
#删除
UserInfo.objects.filter(id=3).delete()
#获取数据
data_list = UserInfo.objects.all()
for obj in data_list:
print(obj.od,obj.name)
#获取第一行
UserInfo.objects.filter(id=3).first()
#更新数据
UserInfo.objects.all().update(age = 18)
UserInfo.objects.filter(id=2).update(age = 18)
return HttpResponse("成功")
标签:processors,框架,models,py,django,context,contrib,pycharm
From: https://www.cnblogs.com/jinwan/p/17434405.html