Django基础
创建一个项目
-
创建web容器:django-admin startproject mysite
启动web : py manage.py runserver
py manage.py runserver 0:8000 #若是要改变则ip和端口一起传递 -
连接数据库配置
连接数据库在settings中配置文件:
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: “jdbc”,
“USER”:“root”,
“PASSWORD”:“077054”,
“HOST”:“127.0.0.1”,
“PORT”:“3306”, -
配置 setting中
- BASE_DIR = Path(file).resolve().parent.parent##获取文 件的上级 目录的上级,即为根目录
DEBUG:是否返回错误信息 - TEMPLATES:模板,向HTML填取数据 需要在其中配置:‘DIRS’: [os.path.join(BASE_DIR,“temp”)],#配置根目录下的t emp项目(需要新建文件夹),使得其可以使用temp目录下html
- urls :为配置路径
其中urlpatterns数组中为配置路径:path(“在浏览器上访问的路径”,”访问路径后执行的函数”) - 该变admin后台管理的语言和时区:
LANGUAGE_CODE = ‘zh-Hans’
TIME_ZONE = ‘Asia/Shanghai’
- BASE_DIR = Path(file).resolve().parent.parent##获取文 件的上级 目录的上级,即为根目录
-
配置静态文件夹
TATICFILES_DIRS = [
os.path.join(BASE_DIR, ‘static’),
os.path.join(BASE_DIR, ‘static2’),#指定文件夹为静态文件,
] //配置此文件是为了可以调用图片等文件 -
创建一个app
- py manage.py startapp app1
文件作用 :admin.py: 管理后台
models 和数据库相关 orm
views: 写函数的 - 创建后再项目下的setting中配置INSTALLED_APPS‘
在最后添加 “app1.apps.App1Config” //可以在apps中操作(推荐使用) - 返回函数一般写在App中,就可以在项目中
path(‘adix/’, include(‘app1.urls’)),
指向App的urls路径,在app的urls中配置路由path(“adinx”,views.a)
- py manage.py startapp app1
将返回字符串设置编码str.encode(“utf-8”)
写入字符串设置编码str.decode(“utf-8”)
orm
-
定义表userlnfo,其中属性有name和password
from django.db import models
class UserInfo(models.Model):
name = models.CharFiled(max_length=100)
password = models.CharFiled(max_length=100) -
表中插入查询数据:UserInfo.objects.create(name=‘jay’,password=‘abc123’)
UserInfo.objects.all()#查询表中的所有记录
UserInfo.objects.filter(name_contains=‘j’)#查询表中name含有“j”的所有记录,被使用较多
UserInfo.objects.get(name=“john”)#有且只有一个查询结果,如果超出一个或者没有,则抛出异常
UserInfo.objects.get(name=“john”).delete()#删除名字为john的记录
UserInfo.objects.get(name=“john”).update(name=‘TOM’)#更新数据表的 name为TOM -
数据库迁移
py manage.py makemigrations #会生成一个迁移文件
py manage.py migrate -
pymysql的使用
- 在 init 文件中加入
import pymysql
pymysql.version_info = (1, 4, 13, “final”, 0)
pymysql.install_as_MySQLdb()
2.使用简介
conn=pymysql.connect(host=“localhost”,user=“root”,password=‘077054’,database=“storage1”)
cursor=conn.cursor()
rse=cursor.execute(“select 名称,数量 from 物品”)
res1=cursor.fetchall()
- 在 init 文件中加入