django-admin startproject projectname
创建项目

cd projectname
进入项目文件

python3 manage.py startapp appname
创建app项目应用
可以创建多个也就是项目的不同功能模块

使用pycharm或其他工具打开项目

打开projectname/settings.py文件
找到INSTALLEN_APPS的字典
在末尾添加你刚刚写的几个或一个appname
这被叫做注册

打开projectname/urls.py
from django.conf.urls import include
配置urls
在urlpatterns的字典中添加url(r’^appname/’,include(‘appname.urls’))

在manage.py同一个级别的下新进templates文件夹
在projectname/settings.py中注册templates
找到TEMPLATES字典中的’DIRS’: []
在[]中添加os.path.join(BASE.DIR,‘templates’)

在projectname/settings.py中
配置数据库
mysql
找到DATABASES字典中default字典
修改
‘ENGINE’: ‘django.db.backends.sqlite3’,
‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),

‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: projectname #你的数据库的name
添加
‘USER’:‘root’,
‘PASSWORD’:‘root’,
‘HOST’:‘0.0.0.0’,
‘PORT’:3306

在projectname/settings.py中配置支持中文

LANGUAGE_CODE =
TIME_ZONE =

改为
LANGUAGE_CODE = ‘zh-hans’
TIME_ZONE = ‘Asia/Shanghai’

设置静态文件目录
和manage.py同级创建static文件夹
在projectname/settings.py中末尾
添加
STATICFILES_DIRS=[os.path.join(BASE_DIR,‘static’)]

配置app中的urls

在appname/urls.py
若没有urls.py
就新建一个urls.py
中写
from django.conf.urls import url
urlpatterns=[]

数据库映射模型
所有的app文件夹中都会有一个models.py文件
这个文件就是将相应的数据类映射到数据库代码
基本是类的方式一个类代表一个表
一个变量代表一个字段

数据库模型写完后要
输入python3 manage.py makemigrations
python3 manage.py migrate

接下来可以启动项目了
python3 manage.py runserver
测试没问题

可以写业务了

总结上面
1.创建django项目
2.创建app
3.配置settings,templates static mysql urls配置
4.创建models
5.将模型更新为实体数据库
6.将前端页面文件对应的cpoy到相应的文件中
7.写视图处理函数改写前端页面实现交互
7.1 配置app内的urls写相应的视图处理函数 改写前端页面的文件加载路径
7.2 完成相应的逻辑处理

7.3
例如登录注册
首先处理登录注册 的form表单 添加表单属性method=post
action=‘/register_handler/’
form表单要添加
{%csrf_token%}
而后写是处理函数register_handler
配置urls
register_handler
要写的内容为
处理注册信息
接收数据
如验证用户是否存在
若数据没问题
就进行注册
使用框架自带的方法
User.objects.create_user(username,emial,password)
注册后跳回首也
使用重定向redirect(reverse(‘goods:index’))
也可以使用post 或get请求
区分是注册还是处理注册
就可以使用一个地址了
也可以使用类视图
from django.views.generic import View
类视图会自动区分get
继承自View
还是post
调用的时候使用as_view()即可
发送邮箱认证的时候要使用加密
保护用户身份信息
加密可使用
itsdangerous
from itsdanagerous import TimedJSONWebSinatureSerializer as Serializer
s=Serializer(SECRET_KEY,time)
time为有效时间单位为秒
serdata=s.dumps(data)加密
s.loads(serdata)解密
将加密的数据+前面的url
配置urls使用正则子组捕获加密数据调用激活视图函数
接收用户信息对比后激活用户
激活或跳转到登录页面

Django提供后台管理数据库

首先要建立一个超级管理员用户
在终端输入python3 manage.py createsuperuser
而后设置用户名字和密码

接着要将要管理的数据库
添加到后台管理员管理范围内
打开projectname/admin.py
里面写入
from django.contrib import admin
from appname.models import modelsname
注册要被管理的库到后台管理中
admin.site.reginster(modelname)
自定义模型管理类
可以控制显示的内容等操作
class modelnameadmin(admin.ModelAdmin):
。。。。。。。。。
使用自定义后必须指出其控制的是哪个类
admin.site.reginster(modelname,modelnameadmin)

启动项目 python3 magage.py runserver

打开浏览器输入localhost /admin/
进入管理页面

在manage.py同级下创建db文件夹
文件中穿件一个base_model.py
在base_model.py中写
from django.db import models
class BaseModel(models.Model):
“”“抽象基类”“”

create_time=models.DateTimeFile(auto_now_add=True,verbose_name=‘创建时间’)
update_time=models.DateTimeFile(auto_now=True,verbose_name=’更新时间’)
is_delete=models.DateTimeFile(default=False,verbose_name=‘删除标记’)

class Meta:
abstract=True

一 django-admin startproject 哒哒哒哒哒哒多多多多
配置settings.py

配置语言为中文
LANGUAGE_CODE = ‘zh-hans’

TIME_ZONE = ‘Asia/Shanghai’
配置数据库 数据库配置
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’:‘dailyfresh2’,
‘USER’:‘root’,
‘HOST’:‘127.0.0.1’,
‘PASSWORD’:‘111111’,
‘PORT’:3306
}
}

静态地址 STATICFILES_DIRS=[os.path.join(BASE_DIR,‘static’)]
tempelets DIRS:[os.path.join(BASE_DIR,‘templetes’)]

模块配置创建
django-admin startapp newapp

app注册
appINSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘newapp’
]

urls 配置
主urls
from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
url(r’^admin/’, admin.site.urls),
url(r’^index/’, include(‘newapps.urls’)),

]

app里的urls

from django.conf.urls import url, include

from user import views
urlpatterns = [
url(r’^register′,views.register,name=′register′),url(r′registerhandler',views.register,name='register'), url(r'^register_handler′,views.register,name=′register′),url(r′registerh​andler’,views.register_handler,name=‘register_handler’)
]

视图处理

from django.shortcuts import render
from django.http import HttpResponse

Create your views here.

def shouye_views(request):
return HttpResponse(“Hello World!”)
return render(request,‘文件名.html’)
在template中即可找到

urls高级
子组传参到视图函数

url(r’^(?P[0-9]+)/$’,shouye_views,name=‘shouye’),

def shouye_views(request,id):
print(id)
return HttpResponse(‘hdsau’)

视图处理高级
request接收参数

print(zizu)
print(request.path)
print(request.GET.get('name'))
print(request.method)
return render(request,'hellow.html',locals())

视图调用函数中的变量
{{任意函数中的变量}}

数据库映射类
创建模型类
最好类名和所在的app名类似
from django.db import models

Create your models here.

class Newapp(models.Model):
name=models.CharField(max_length=30)
age=models.IntegerField()

生成数据库依赖文件
在app目录下的migrations中
python3 manage.py makemigrations

生成相依的数据库
python3 manage.py migrate

Apply all migrations: admin, auth, contenttypes, newapp, sessions

每次更新数据库模型类都要执行的这两句话

使用 Django 提供的 shell
管理数据库
python3 manage.py shell

添加一个数据

from newapp.models import Newapp
Newapp.objects.create(name=‘wizhontu’,age=12)
<Newapp: Newapp object>

查询数据

Newapp.objects.get(age=12)
<Newapp: Newapp object>
查出来是对象不是数据
所以要修改类中的一个叫 __str__内置函数
def str(self):
return self.name
将上两行写在类中即可

注意 在覆盖内置函数时不用执行
python3 manage.py makemigrations
python3 manage.py migrate

这两句话

只用添加字段
和写其他方法和类的时候
执行他们
python3 manage.py makemigrations
python3 manage.py migrate

创建一对多需要在多的表中建立外键
根据一表查多表时候使用一表中写的关联变量_set查询

多对多
一对一
一样写一个即可
查询时直接访问类名小写即可

例子
print(User.objects.filter(id=1).values(‘username’))
使用values可得到想要字段的字典

多对多插入数据时最好先插入没写关联变量的那个表
通过查该表创建另一个表有关的数据
同样反过来也可以

Book.objects.create(bookname=‘bb%d’%i,bookpage=300).uers.add(*(User.objects.filter(Q(id__gte=random.randrange(10)))))

所有教程
https://code.ziqiangxuetang.com/django/django-models.html

django写项目的详细步骤相关推荐

  1. Railway Dashboard部署PHP苹果CMS项目的详细步骤

    Railway Dashboard部署PHP苹果CMS项目的详细步骤 目录 Railway Dashboard部署PHP苹果CMS项目的详细步骤 1.准备项目文件: 2.创建Dockerfile: 3 ...

  2. eclipse弃坑记第一篇之在idea上配置Tomcat环境并创建Javaweb项目的详细步骤原创

    IntelliJ IDEA是一款功能强大的开发工具,在代码自动提示.重构.J2EE支持.各类版本工具(如git.svn.github).maven等方面都有很好的应用. IntelliJ IDEA有免 ...

  3. Vscode创建vue项目的详细步骤

    目录 一.概述 操作的前提 二.操作步骤 一.概述 后端人员想在IDEA里面创建一个Vue的项目,但是这非常麻烦,用vscode这个前端专用软件创建就会非常快速. 操作的前提 1.安装vscode软件 ...

  4. 如何使用vue-cli来搭建vue项目?详细步骤跟着我来吧!

    目录 一.什么是vue-cli? 二.前提:搭建好NodeJS环境 安装vue-cli 三.使用脚手架vue-cli(2.X版)来构建项目 第一步 第二步 第三步 第三步 第四步 三.SPA完成路由的 ...

  5. python django web项目的构建步骤(一)

    Django 一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的.并于2 ...

  6. centos7+tomcat部署JavaWeb项目超详细步骤

    转自:https://www.cnblogs.com/xiaohu1218/p/7233162.html 我们平时访问的网站大多都是发布在云服务器上的,比如阿里云.腾讯云等.对于新手,尤其是没有接触过 ...

  7. 【Scala】Scala的安装以及创建Scala项目的详细步骤

    一.Scala的安装 1.首先打开idea开发工具,然后在file-->setting-->pulgins,然后在输入框中输入Scala就可以出来如下界面: 但是我这里的是已经安装好了的, ...

  8. 云服务器部署web项目 超详细步骤 腾讯云 阿里云

    购买阿里云服务器ECS,选择CentOS 7.6操作系统 外界用户访问云服务器中实例的示意图 重置实例的密码 设置安全组规则 创建安全组和安全组规则 为安全组添加实例 使用XShell和XFTP连接到 ...

  9. 项目部署到SVN上以及SVN修改项目名称详细步骤

    将一个Maven的Java项目,重命名(改造)为一个新项目,用TortoiseSVN上传到SVN服务器 从SVN中检出项目,然后去除版本控制,更改项目名称后,再重新提交该新项目到SVN服务器进行版本控 ...

最新文章

  1. jquery_3month
  2. c语言findnext递归扫描文件,C++用FindFirstFile、FindNext递归遍历硬盘的文件-Go语言中文社区...
  3. 用CSS实现首字下沉效果,仿word的首字下沉
  4. 挂隐藏链接的4种代码
  5. 直接插入排序python实现
  6. Eureka集群搭建
  7. CentOS 中 配置 Nginx 支持 https
  8. Android NDK: WARNING: Ignoring unknown import directory:错误解决方法
  9. Android 轻松实现语音识别详解及实例代码
  10. ubuntu ssh密钥_生成SSH密钥以在Ubuntu中进行无密码登录
  11. 北航计算机考研计算机组成原理,北航计算机组成原理讲义.pdf
  12. 用envi裁剪下来的图像是黑色的_ENVI进行图像裁剪.doc
  13. oracle怎么查询临时表空间大小,如何查看oracle临时表空间当前使用了多少空间的大小...
  14. 涨知识:面试字节跳动Java研发岗,经验分享
  15. 如何使用AndriodStudio制作音乐播放器音乐列表界面和导入手机音乐资源
  16. (极值点偏移问题的几种方案)已知$\dfrac{\ln x_1}{x_1}=\dfrac{\ln x_2}{x_2}$,求证:$x_1+x_22\text{e}$....
  17. 解析:学Java好还是HTML5好?
  18. 国产数据库OpenGauss--内存优化表(MOT)实践
  19. PLC控制系统的软件设计
  20. 【持续更新】树莓派启动与故障系列集锦

热门文章

  1. linux命令关闭电脑,SELinux关闭命令详解linux操作系统 -电脑资料
  2. java 不知道键值名_java-如果您知道曲线名称和原始私钥/点,如...
  3. kettle 日志存到mysql_kettle作业(job)调用转换,设置变量,写日志到数据库中【转】...
  4. 安卓怎么连接服务器的数据库文件,安卓怎么连接服务器的数据库文件
  5. i2c通信 msp430g2553_请教 AD7150 + MSP430G2553 i2C通讯问题该如何编码??
  6. GT Transceiver的复位与初始化(2)CPLL复位以及QPLL复位
  7. IC/FPGA 设计资源整理推荐
  8. MATLAB中的vpa函数简单实用记录——精度控制
  9. python中的静态方法和类方法
  10. js获取验证码倒计时效果