• django搭建简单开发项目流程(一)


    1 搭建环境

    sudo apt-get install python3-pip   安装pip3
    sudo pip3 install virtualenv       安装虚拟环境
    virtualenv -p python3 DjangoEnv     新建虚拟环境
    source DjangoEnv/bin/activate       进入虚拟环境
    pip freeze						查看安装列表
    pip install django==1.11           安装django
    配置python的解释路径
    settings  配置
    找到虚拟环境下python3解释路径,选择python3解释器
    

    2 创建项目及数据库

    create databases django   创建django数据库
    django-admin startproject DjangoProject  创建项目名
    	manage.py 
    	__init__.py
    	settings.py
    	urls.py
    	wsgi.py
    	templates
    
        #在settings配置数据库
    DATABASES = {
      'default':{
         'ENGINE':'django.db.backends.mysql',
    	'NAME':'数据库名',
    	'USER':'用户名',
    	'PASSWORD':'用户密码'
    	'HOST':'数据库服务器IP',
    	}
    }
    #注:进入mysql中,添加账户密码: grant all on *.* to 'django'@'%' identified by '123456'
    

    3 创建App运用并配置

    #开启项目myApp
    python manage.py startapp myApp
    #配置app
    INSTALLED_APPS = [
    	'django.contrib.admin',
    	'django.contrib.auth',
    	'django.contrib.contenttypes',
    	'django.contrib.messages',
    	'django.contrib.staticfiles',
    	'myApp'
    ]
    

    4 设计model表结构

    #一张表对应一个类,表的设计与关联直接关系到后续代码的质量
    class Student(models.Model):  #定义一个student模型
    	gname = models.CharField(max_length=20)
    	gdate = models.DateTimeField()
    	....
    class Grades(models.Model):
    	sgender = models.BooleanField()
    	sage = models.IntegerField()
    	isDelete = models.BooleanField(default = False)
    	sgrade = models.ForeignKey('Grades')  #年级一对多学生设置外键
    

    5 执行迁移文件

    python manage.py makemigrations APP名  生成迁移文件
    python manage.py migrate App名  执行迁移文件
    

    6 启动django服务器

    python manage.py runserver    启动服务器
    或者  python manage.py runserver 8080
    #注意runserver开启之后进行下一项目记得及时关闭
    #python manage.py runserver 0.0.0.0:8000   任何ip都能访问
    

    7 对数据库简单的操作

    #增加
    创建对象:
    grade1 = Grades()
    添加数据:
    grade1.gname = 'tom'
    grade1.gdate = datetime(year = 2017,month=7,day=17)
    grade1.ggirlnum = 3
    grade1.gboynum = 50
    保存数据:
    grade1.save()
    
    #删除
    模型对象.delete()
    grade2.delete()
    
    #修改
    模型对象.属性 = 新值
    grade1.gboynum = 60
    grade1.save()    #保存
    
    #查找
    类.objects.all()  查看全部
    类.objects.get(pk=n)  查看指定
    类.objects.exclude(field=value)  排除指定
    查询 Student.objects.[all,filter,get,exclude,last,first,latest](查询条件)
    查询字段__[lt,gt,lte,gte,contains,isnull,in,endswith,startswith]
    
    

    8 创建模板templates

    #settings中修改TEMPLATES
    DIRS = [os.path.join(BASEDIR,'templates')]
    
    #设置对应的templates对应app的跳转html页面
    

    9 app下添加子路由urls.py

    #项目下的根路由
    
    from django.conf.urls import url,include    #导入urls中url与include
    from django.contrib import admin   #导入admin
    
    urlpatterns = [
    	url(r'^admin/',admin.site.urls),   #获取默认的admin首页
    	url(r'^firstApp/$',include('myApp.urls')) 
     #以firstApp作为匹配获取myApp新建的urls中新建首页
    ]
    
    #应用下的子路由
    from django.conf.urls import url
    from . import views
    urlpatterns = [
    	url(r'^$',views.index),     #当匹配为空时显示views中的index页面  hello django
           url(r'^(d+)/(d+)',views.detail),  #当匹配到类似/20/30时,显示views中detail函数
    ]
    

    10 关联表查询

    #ForeignKey  外键
    一对多访问:  对象.模板类小写_set    
    grade.students_set.属性
    多访问一:   对象.模板类小写.属性
    Students.objects.get(pk=2).grades.gname
    
    #OneToOne
    用一对一访问被关联对象:
    对象.被关联class小写
    grade.students.sname
    一对一反向查询:
    对象名.关联对象类名小写.属性
    students.grades.gname
    
    #ManyToMany
    多对多访问   
    对象.关联字段
    多对多反向查询:  manyTo many
    对象.被关联对象class小写_set
    		
    

    当然上述过程只适合新手理清楚django整体的项目流程,实际开发以实际为准.

  • 相关阅读:
    appium+python自动化24-滑动方法封装(swipe)
    selenium+python自动化82-只截某个元素的图
    selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python2&3)
    selenium+python自动化79-文件下载(SendKeys)
    selenium+python自动化77-autoit文件上传
    Appium+python自动化22-Appium Desktop
    Appium+python自动化21-DesiredCapabilities详解
    Appium+python自动化20-查看iOS上app元素属性
    Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP
    Appium+python自动化18-brew、carthage和appium-doctor
  • 原文地址:https://www.cnblogs.com/why957/p/9180662.html
Copyright © 2020-2023  润新知