码迷,mamicode.com
首页 > 其他好文 > 详细

django

时间:2020-05-02 17:18:14      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:classes   情况   ext   apr   mysql8   arc   objects   关联   管理员   

创建项目
django-admin startproject name

创建的name中 找 __init__ 输入 import pymysql
pymysql.install_as_MySQLdb()
在 settings中修改DATABASES
backends后改为mysql
‘name’:后面为你创建的数据库名
‘user’:用户名
‘password’:数据库密码
‘host’:数据库服务器ip 127.0.0.1或localhost
‘port’:端口3306

 

创建数据库
进入到数据库内后 命令行都要加;
以管理员身份运行cmd 输入 net start mysql80
mysql -u root -p 打开mysql
输入密码 zy415320
show databases; 展示已有数据库
use 数据库名 进入该数据库
drop database 名字 删除该数据库
create database 名字 创建数据库


创建应用
cd name
python manage.py stratapp 名字
admin 配置站点
model 模型
view 视图

激活应用
在settings中 将应用 加入到INSTALLED_APPS中


第一次请求

1.匹配路由
找到业务函数,调用
找不到,404
2.业务函数,执行业务逻辑
3返回数据给浏览器


1.urls.py 编写路由
2.views.py 业务函数
from django.shortcuts import render,HttpResponse
编写业务代码
通过httpresponse 方法返回数据给前端
3.python manage.py runserver 0.0.0.0:8000


如果要调用html文件 在
settings.py 中找到 TEMPLATES
在 DIRS 列表中加路径 os.path.join(BASE_DIR,name)

自己写转换器
创一个类
写2个方法
to_python,to_url
导入register_converter
导入写的类
register_converter(converters.yearconverter,‘yyyy‘)

 


include 子url
在创建项目里里找到urls.py
当有多个app时,导入include
path(‘app01/‘,include(‘app01.urls‘))
在创建app里新建一个url 创建方法与创建项目里的url类似,


视图views数据库
orm字段

AutoField 自增
BigAutoField 大自增
BigIntergerField 数字
CharField 字符串
DateField 日期
DatetimeField 日期时间
EmailField 字符串,判断是不是邮箱
FileField 文件
FloatField 浮点数
ImageField 图片

在app内model
写数据库表

在项目下init内


Django数据库同步工具
migration
1.生成同步文件
python manage.py makemigrations
出现错误 第一个注释,第二个decode改为encod
2.同步
python manage.py migrate
import pymysql
pymysql.install_as_MySQLdb()


python manage.py createsuperuser
django models
python manage.py shell
创建数据
models.Account.objects.create(
... username=‘jack‘,
... email=‘jack@account.com‘,
... password=‘zy123‘,
... )
o=models.Account(
... username=‘zy‘,
... email=‘810283394@qq.com‘,
... password=‘zy123‘,
... signature=‘666‘,
... )

object create
1.object.create 直接创建
2.先创建对象,再obj.save()

fk(外键)
obj.account_id=2
obj,account=account对象

 

m to m

create object
通过创建成功的对象,添加多对多关联
tags.set([o1,o2]) 赋值
tags.add(1,2,3)在原有记录上加新值


查询
o.objects.get() 获取一个
o.objects.exclude() 除了
o.objects.all() 获取全部
o.objects.filter(name__contains) 相当于where like

gt--> startswith endswith range()区间内 regex正则语法
iregex 正则语法,大小写不敏感
查询的都是对象

获取详细的可以用索引.属性
也可以用values values()后面可加order_by(‘id‘,‘-id‘)升序,降序

 

批量修改
models.Account.objects.filter().update()/.delete()

单修改
a=models.Account.objects.get()
a.attribute=‘‘ / a.delete()
a.save()

有外键的情况下
可以一直用.来对表属性进行操作
单个对象操作 索引
外键关联操作 models.Article.account.username
外键关联反向操作 a.article_set.all()/a.article_set.select_related()
多对多操作 o=models.Article.objects.all()[0]
o.tags.all()

多对多反向操作 t=models.Tag.objects.get(name=‘‘)
t.article_set.all()

 

django admin

在admin中导入app的models
admin.site.register(models.Account)
定制需要创建类
class AccountAdmin(admin.ModelAdmin):
list_display()
search_field()
在登录界面中 粗体的必填想不填要在表中属性加blank=True
list_per_page = 5 #分页情况

内容分字段

fieldsets = (
(‘文章内容‘,{
‘fields‘:[‘title‘,‘content‘],
‘classes‘:(‘wide‘,‘extrapretty‘),#改变宽度
}),(‘发布相关‘,{
‘classes‘: (‘collapse‘,),#显示折叠
‘fields‘:[‘account‘,‘pub_date‘],

})
)

接口数据规范 Restful API
GET 获取数据
post 修改创建
put 修改更新
delete 删除


运行 python manage.py runserver

django

标签:classes   情况   ext   apr   mysql8   arc   objects   关联   管理员   

原文地址:https://www.cnblogs.com/luoye-guigen/p/12818389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!