在pycharm中開發vue


一.在pycharm中開發vue

'''
webstorm(vue) pycharm(python) goland(Go語言) idea(java) andrioStuidio(安卓) Php(PHP)
'''

'''
①在pycharm中打開vue項目,在settins下Plugins中下載vue.js
②啟動vue項目
 -方法1.在Terminal下輸入npm run serve
 -方法2.Edit Configurations----》點+  選npm-----》在script對應的框中寫:serve
'''

二.vue項目的目錄結構

'''
-node_modules:項目的依賴

-public
    -favicon.ico  網頁的圖標
    -index.html   主頁面
-src:我們需要關注的
    -assets:方靜態文件
    -components:小組件
    -views  :頁面組件
    -App.vue :主組件
    -main.js :項目主入口js
    -router.js: 路由相關,以后配置路由,都在這里配置
    -store.js  :vuex相關,狀態管理器

-package.json   項目的依賴文件
'''

三.每個vue組件由三部分組成

'''
template:放html代碼
script:放js相關的東西
style:放css相關
'''

四.vue中路由的創建

'''
①在src下views文件夾中創建一個組件 FreeCourse.vue
②配置路由
    在src下router.js中配置
    import FreeCourse from './views/FreeCourse.vue'
    
    {
      path: '/freecourse',
      name: 'freecourse',
      component: FreeCourse
    },
③路由跳轉
在src下APP.vue中配置
<router-link to="/freecourse">免費課程</router-link>
'''

五.在組件中顯示數據

'''
①在template中:
<div class="course">
    {{course_list}}
</div>

②在script中:
export default {
  name: 'course',
  data: function () {
      return{
        course_list:['python','linux','go語言']
      }
  }
}
''' 

六.vue中的axios完成前后台交互

-安裝
    npm install axios 在package.json文件中就能看到依賴
-在main.js中配置
    //導入 axios
    import axios from 'axios'
    //把axios對象賦給$http
    Vue.prototype.$http=axios
    //以后在組件的js中通過$http取到的就是axios
-在組件的js代碼中寫:
    this.$http.request({
        //向下面的地址發送get請求
        url:'http://127.0.0.1:8000/courses/',
        method:'get'
    }).then(function (response) {
        //response.data才是真正的數據
        console.log(response.data)
    })
-頁面掛載完成,執行后面函數,完成數據加載
    mounted:function () {
        this.init()
    }
        
#組件
'''
<template>
  <div class="course">
    <h1>我是免費課程頁面</h1>
    <p v-for="course in course_list">{{course}}</p>
  </div>
</template>

<script>


export default {
  name: 'course',
  data: function () {
      return{
        course_list:[]
      }
  },
  methods: {
      'init':function () {
          var _this = this;
          this.$http.request({
              //向下面的地址發送get請求
              url:'http://127.0.0.1:8000/courses/',
              method:'get'
          }).then(function (response) {
              //response.data才是真正的數據
              _this.course_list = response.data
          })
      }
  } ,
  mounted:function () {
      this.init()
  }
}
</script>
'''

七.vue中使用element-ui

-餓了么開源樣式

-安裝 npm i element-ui -S

-在main.js中配置
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

-去官方文檔看樣式完成復制粘貼 http://element-cn.eleme.io/#/zh-CN

八.contentype組件(數據庫相關)

什么時候使用?
實際項目中有一個表(PricePolicy)要關聯好幾個表(Course,DegreeCourse)也就是這個表要儲存好幾個表的數據,這種情況使用contentype組件

-新建免費課程表的時候 Course
# 不會在數據庫中生成字段,只用於數據庫操作
policy = GenericRelation(to='PricePolicy')

-新建學位課程表的時候 DegreeCourse
# 不會在數據庫中生成字段,只用於數據庫操作
policy = GenericRelation(to='PricePolicy')

-價格策略表 PricePolicy
#之前有的字段該怎么寫就怎么寫
object_id = models.IntegerField()
content_type = models.ForeignKey(to=ContenType,null=True)
# 引入一個字段,不會在數據庫中創建,只用來做數據庫操作
content_obj = GenericForeignKey()

使用一(給課程添加價格策略):
-給免費課django添加價格策略
course = models.Course.objects.get(pk=1)
ret=models.PricePolicy.objects.create(period=30, price=199.9,content_obj=course)
-給學位課程(python全棧開發)添加價格策略
degree_course = models.DegreeCourse.objects.get(pk=1)
ret=models.PricePolicy.objects.create(period=30, price=199.9,content_obj=degree_course)

使用二:查詢價格策略對應的課程:
price_policy=models.PricePolicy.objects.get(pk=1)
print(price_policy.content_obj)

使用三:通過課程獲取價格策略
course = models.Course.objects.get(pk=1)
policy_list=course.policy.all()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM