forked from mrlan/EnglishPal
				
			WIP:[REFACTOR]:main.py,create_clozeTest.py:重构
							parent
							
								
									0117470ab5
								
							
						
					
					
						commit
						9d5175d0a6
					
				|  | @ -1,7 +1,9 @@ | |||
| import random | ||||
| import sqlite3,re | ||||
| import sqlite3 | ||||
| import re | ||||
| from nltk.corpus import wordnet as wn | ||||
| 
 | ||||
| 
 | ||||
| class Essay: | ||||
|     def __init__(self): | ||||
|         self._article_id = 0 | ||||
|  | @ -27,7 +29,8 @@ class Essay: | |||
|             conn = sqlite3.connect("static/wordfreqapp.db") | ||||
|             # 创建游标 | ||||
|             cursor = conn.cursor() | ||||
|             cursor.execute("select text,level from article where article_id = "+str(id)) | ||||
|             cursor.execute( | ||||
|                 "select text,level from article where article_id = "+str(id)) | ||||
|             results = cursor.fetchall() | ||||
|             conn.commit() | ||||
|             cursor.close() | ||||
|  | @ -53,7 +56,8 @@ class Essay: | |||
|             conn = sqlite3.connect("static/wordfreqapp.db") | ||||
|             # 创建游标 | ||||
|             cursor = conn.cursor() | ||||
|             cursor.execute("select word from words where difficulty = " + str(self._difficulty)) | ||||
|             cursor.execute( | ||||
|                 "select word from words where difficulty = " + str(self._difficulty)) | ||||
|             results = cursor.fetchall() | ||||
|             conn.commit() | ||||
|             cursor.close() | ||||
|  | @ -82,26 +86,27 @@ class Essay: | |||
| 
 | ||||
|         database_words = essay.find_same_difficulty_words() | ||||
|         essay_words = essay.split_essay_to_word() | ||||
|         # 寻找文章中与文章难度相同的单词存入word[]中 | ||||
|         for essay_word in essay_words: | ||||
|             if database_words.__contains__(essay_word) and essay_word not in word: | ||||
|                 word.append(essay_word) | ||||
| 
 | ||||
|         # 给出因文章内容太少的问题导致题目少于10个的情况 | ||||
|         if len(word) <= 10: | ||||
|             answers = word | ||||
|         else: | ||||
|         else:  # 将找出来的单词作为正确答案存入answers[]中 | ||||
|             for i in range(0, 10): | ||||
|                 w = word[random.randint(0, len(word) - 1)] | ||||
|                 if not answers.__contains__(w): | ||||
|                     answers.append(w) | ||||
| 
 | ||||
|         self._answers = answers | ||||
| 
 | ||||
|         # 用题号来替换文章中的单词 | ||||
|         No = 1 | ||||
|         for answer in answers: | ||||
|             questions.append(list(answer.split(","))) | ||||
|             self._essay = self._essay.replace(answer, '('+str(No)+')____', 1) | ||||
|             No += 1 | ||||
| 
 | ||||
|         # 生成每道题目的四个选项 | ||||
|         for question in questions: | ||||
|             synset = list(set(essay.get_word_synsets(question[0]))) | ||||
|             if len(synset) == 0 or len(synset) == 1: | ||||
|  |  | |||
|  | @ -109,6 +109,10 @@ essay = Essay() | |||
| 
 | ||||
| @app.route('/gocloze', methods=['GET', 'POST']) | ||||
| def go_ClozeTest(): | ||||
|     ''' | ||||
|     根据GET或POST方法来分别返回答题前后的完型填空界面 | ||||
|     :return: 完型填空界面 | ||||
|     ''' | ||||
|     if request.method == 'GET': | ||||
|         essay._article_id += 1 | ||||
|         essay.create_clozeTest(essay) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue